100% found this document useful (3 votes)
2K views407 pages

BC400 ABAP Workbench Concepts and Tools

ABAP BC400

Uploaded by

Nicole Johnson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
2K views407 pages

BC400 ABAP Workbench Concepts and Tools

ABAP BC400

Uploaded by

Nicole Johnson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 407

BC400 ABAP Workbench Concepts and

Tools
BC400
Release 46D 26.03.2003
0
SAP AG 2001
BC400 ABAP Workbench Concepts and Tools
SAP AG
BC400
BC400
ABAP Workbench:
ABAP Workbench:
Foundations and
Foundations and
Concepts
Concepts
R/3 System
Release 4.6D
Material Number 5004 8586
Ot!ber "00#
0.2
SAP AG 2002
Copyright 2002 SAP A! All rights reser"ed!
#o part o$ this publication %ay be reproduced or trans%itted in
any $or% or $or any purpose &ithout the e'press per%ission o$
SAP A! The in$or%ation contained herein %ay be changed
&ithout prior notice!
All rights reser"ed!
Copyright
Trademarks:
S!me s!$t%are &r!'uts mar(ete' by SAP AG a)' its 'istribut!rs !)tai) &r!&rietary s!$t%are
!m&!)e)ts !$ !t*er s!$t%are +e)'!rs.
Mir!s!$t
,
- ./NDO.S
,
- N0
,
- 12C13
,
- .!r'
,
- P!%erP!i)t
,
a)' S43 Ser+er
,
are re5istere'
tra'emar(s !$ Mir!s!$t C!r&!rati!).
/BM
,
- DB"
,
- OS/"
,
- DB"/6000
,
- Parallel Sys&le6
,
- M7S/1SA
,
- RS/6000
,
- A/2
,
- S/380
,
- AS/400
,
-
OS/380
,
- a)' OS/400
,
are re5istere' tra'emar(s !$ /BM C!r&!rati!).
ORAC31
,
is a re5istere' tra'emar( !$ ORAC31 C!r&!rati!).
/N9ORM/2
,
:O)3i)e $!r SAP a)' /N9ORM/2
,
Dy)ami Ser+er
0M
are re5istere' tra'emar(s !$
/)$!rmi6 S!$t%are /)!r&!rate'.
;N/2
,
- 2/O&e)
,
- OS9/#
,
- a)' M!ti$
,
are re5istere' tra'emar(s !$ t*e O&e) Gr!u&.
<0M3- D<0M3- 2M3- 2<0M3 are tra'emar(s !r re5istere' tra'emar(s !$ .3C
,
- .!rl' .i'e
.eb C!)s!rtium- Massa*usetts /)stitute !$ 0e*)!l!5y.
=A7A
,
is a re5istere' tra'emar( !$ Su) Mir!systems- /).
=A7ASCR/P0
,
is a re5istere' tra'emar( !$ Su) Mir!systems- /).- use' u)'er lie)se $!r
te*)!l!5y i)+e)te' a)' im&leme)te' by Netsa&e.
SAP- SAP 3!5!- R/"- R/7A- R/3- ABAP- SAP Ar*i+e3i)(- SAP Busi)ess .!r($l!%- .eb9l!%-
SAP 1arly.at*- BAP/- SAPP</R1- Ma)a5eme)t C!(&it- mySAP.!m 3!5! a)' mySAP.!m
are tra'emar(s !r re5istere' tra'emar(s !$ SAP AG i) Germa)y a)' i) se+eral !t*er !u)tries all
!+er t*e %!rl'. All !t*er &r!'uts me)ti!)e' are tra'emar(s !r re5istere' tra'emar(s !$ t*eir
res&eti+e !m&a)ies.
0.3
SAP AG 1999
ABAP Workbench
ABAP Workbench:
Founa!"ons an
#once$!s
BC400 % a&s
'ana("n( ABAP
De)elo$*en!s Pro+ec!s
(BC40 2 a&s
Da!a ,rans-er
BC420 % a&s
,echn".ues o- /"s!
Process"n( an 0n-oSe!
1uer&
BC40)
3 a&s
SAPscr"$!: For*s Des"(n
an ,e2! 'ana(e*en!
BC4*0 3 a&s
#A,,:,es! Workbench an
#o*$u!er A"e ,es! ,ool
CA*+0 ,-el! 4!0. 2 a&s
ABAP Per-or*ance
,un"n(
BC4/0 3 a&s ABAP Pro(ra**"n(
,echn".ues
BC402 3 a&s
Pro(ra**"n(
Da!abase 3$a!es
BC4+4 3 a&s
4nhance*en!s
an 'o"-"ca!"ons
BC42) 3 a&s
Reco**ene su$$le*en!ar&
courses are:
Bus"ness Process ,echnolo("es
CA/2)0 CA/2*0 CA/21
BC0/) 5Bus"ness 0n!e(. ,echn.6
BC*+/ 5A/467 BC*200 BC*2+
2e"el 2
ABAP 8b+ec!s: 8b+ec! 9
8r"en!e Pro(ra**"n( "n R:3
BC404 3 a&s
For* Pr"n!"n( 3s"n(
SAP S*ar! For*s
BC410 2 a&s
ABAP D"c!"onar&
BC430 2 a&s
D"alo( Pro(ra**"n(
us"n( 4n+o&SAP #on!rols
BC4+2 3 a&s
Pro(ra**"n(
3ser D"alo(s
BC4+0 % a&s
#o**un"ca!"on
0n!er-aces "n ABAP
BC4+) 2 a&s
2e"el 3
0.4
SAP AG 1999
4TS
2e"el 3 2e"el 2
ABAP Workbench:
Founa!"on an
#once$!s
BC400 % a&s
2e"el 3 2e"el 2
#or$ora!e 0en!"!& Des"(n
4TS+)0 2 a&s
SAP 0n!erne! ,ransac!"on
Ser)er: A*"n"s!ra!"on
4TS010 2 a&s
De)elo$"n( Web Scenar"os
an '"n"A$$s us"n( 0,S
Flo; /o("c
4TS++0
2 a&s
De)elo$"n(
4as&Web,ransac!"ons
4TS+00 2 a&s
SAP 0n!erne! ,ransac!"on
Ser)er: Founa!"ons
4TS0)0 3 a&s
0.5
SAP AG 2001
Course Prere5uisites
Progra%%ing kno&ledge
Contents o$ SAP)0 training course ,Basis
Technology.
0.6
SAP AG 2001
Target group
Participants: (e%bers o$ pro6ect tea%
2ength: ) days
0*e trai)i)5 materials are not teach-yourself programs. 0*ey complement the course nstructor!s
e"planatons. O) t*e s*eets- t*ere is s&ae $!r y!u t! %rite '!%) a''iti!)al i)$!rmati!).
0*ere may )!t be time 'uri)5 t*e !urse itsel$ $!r y!u t! !m&lete all t*e e6erises. 0*e e6erises
are i)te)'e' as a''iti!)al e6am&les !$ t*e t!&is 'isusse' 'uri)5 t*e !urse. Partii&a)ts a) als!
use t*em as a) ai' t! e)*a)i)5 t*eir ()!%le'5e a$ter t*e !urse *as $i)is*e'.
+
SAP AG 2001
Course 7"er"ie&
Course oals
Course 7b6ecti"es
Course Content
(ain Business Scenario
4%portant 8atabase Tables $or the Flight 8ata (odel
Contents:
>C? SAP AG BC400 #
1.2
SAP AG 2001
At the conclusion o$ this unit0 you &ill be able
to:
Course oals
9'plain the basics o$ the ABAP progra%%ing
language0 including:
Basic synta' ele%ents
8i$$erent types o$ user dialogs
:o& to read database accesses
8escribe the "arious uses o$ the ABAP Workbench0
including:
Support through de"elop%ent tools
Support in organi;ation and transport
>C? SAP AG BC400 "
1.3
SAP AG 2001
Course 7b6ecti"es
Create an ABAP progra% containing user dialogs
and database accesses
8escribe the di$$erent types o$ de"elop%ent ob6ects
and their typical uses
<se appropriate tools to create basic e'a%ples $or
the -epository ob6ects introduced in the course
At the conclusion o$ this course0 you &ill be able to:
>C? SAP AG BC400 3
1.4
SAP AG 2001
3n"! 1 4ntroduction
3n"! 2 Progra% Flo& in an ABAP Progra%
3n"! 3 4ntroduction to the ABAP Workbench
3n"! 4 4ntroduction to the ABAP 8ictionary
3n"! % Basic ABAP 2anguage 9le%ents
3n"! 6 8ata -etrie"al
3n"! < 4nternal Progra% (odulari;ation &ith Subroutines
3n"! = The ABAP -unti%e Syste%
3n"! 9 <ser 8ialog 2ist
3n"! 10 <ser 8ialog Selection Screen
Table o$ Contents 4
>C? SAP AG BC400 4
1.5
SAP AG 2001
3n"! 11 <ser 8ialog Screen
3n"! 12 <ser 4nter$ace
3n"! 13 Perspecti"e: 8e"elop%ent o$ 4nternet Applications
3n"! 14 Cross=Progra% (odulari;ation
3n"! 1% So$t&are 2ogistics and So$t&are Ad6ust%ent
Appendi'
Table o$ Contents 44
>C? SAP AG BC400 5
1.6
SAP AG 2001
4n this course0 you &ill de"elop se"eral
progra%s designed to assist tra"el agencies!
So%e o$ their typical needs include:
8eter%ining $light connections on speci$ic dates
Processing bookings $or speci$ic $lights
9"aluating additional $light in$or%ation0 such as
Price
Capacity
8eparture city
8eparture airport
8estination airport
8estination city
(ain Business Scenario
>C? SAP AG BC400 6
1.7
SAP AG 2001
4%portant 8atabase Tables $or the Flight 8ata
(odel
SCARR SCARR CARRID:
CARRNAME:
CURRCODE:
Airline 48
Airline na%e
2ocal currency o$ airline
SPFLI SPFLI CARRID:
CONNID:
COUNTRYFR:
CITYFROM:
AIRPFROM:
COUNTRYTO:
CITYTO:
AIRPTO:
Airline 48
Flight connection 48
Country key $or departure city
8eparture city
8eparture airport
Country key $or arri"al city
8estination city
8estination airport
SFLIGHT SFLIGHT CARRID:
CONNID:
FLDATE:
PRICE:
CURRENCY:
SEATSMAX:
SEATSOCC:
Airline 48
Flight connection 48
Flight date
Price
Currency
(a'i%u% nu%ber o$ seats on $light
Current nu%ber o$ occupied seats on $light
@!u %ill re$er t! t*is i)$!rmati!) as y!u '! t*e e6erises t*r!u5*!ut t*is !urse.
>C? SAP AG BC400 A
2
SAP AG 2001
Syste% Architecture and ABAP Progra%
Sa%ple Progra% &ith Selection Screen and 2ist
Contents:
Progra% Flo& in an ABAP Progra%
>C? SAP AG BC400 #
2.2
SAP AG 2001
8escribe the architecture o$ the ->3 Syste%
8escribe ho& to e'ecute a si%ple dialog progra%
using the ABAP runti%e syste%
At the conclusion o$ this unit0 you &ill be able to:
Progra% Flo& o$ an ABAP Progra%: <nit
7b6ecti"es
>C? SAP AG BC400 "
2.3
SAP AG 2001
Syste% Architecture and ABAP Progra%
Syste% Architecture and ABAP Progra%
Syste% Architecture and ABAP Progra%
Sa%ple Progra% &ith Selection Screen and 2ist
Sa%ple Progra% &ith Selection Screen and 2ist
>C? SAP AG BC400 3
2.4
SAP AG 2001
Client>Ser"er Architecture
Presentation
Ser"er
2ayer
Application
Ser"er
2ayer
8atabase




8ispatcher
Work
Process
SAP<4 SAP<4 SAP<4 SAP<4 SAP<4 SAP<4
Work
Process
Work
Process
Work
Process
8ispatcher
Work
Process
Work
Process
Work
Process
Work
Process
0*e R/3 System *as a m!'ular s!$t%are ar*iteture t*at $!ll!%s soft#are-orented
lie)t/ser+er &ri)i&les.
0*e R/3 System all!ates t*e &rese)tati!)- a&&liati!) l!5i- a)' 'ata st!ra5e t! 'i$$ere)t
!m&uters. 0*is ser+es as t*e basis $!r t*e scalablty !$ t*e R/3 System.
0*e l!%est le+el is t*e database le$el. <ere 'ata is ma)a5e' %it* a relati!)al 'atabase
ma)a5eme)t system >RDBMS?. /) a''iti!) t! a&&liati!) 'ata- t*e 'atabase !)tai)s t*e
&r!5rams a)' t*e meta'ata t*at t*e R/3 System reBuires $!r sel$:ma)a5eme)t.
ABAP &r!5rams >b!t* t*e a&&liati!)s &r!+i'e' by SAP a)' t*e !)es y!u 'e+el!& y!ursel$? ru)
at t*e applcaton ser$er le$el. 0*e ABAP &r!5rams rea' 'ata $r!m t*e 'atabase le+el- &r!ess
t*e 'ata- a)' &!ssibly st!re 'ata t*ere.
0*e presentaton ser$er le$el !)tai)s t*e user i)ter$ae t*r!u5* %*i* ea* user a) aess
t*e &r!5ram- e)ter )e% 'ata- a)' 'is&lay t*e results !$ a %!r( &r!ess.
0*e te*)ial 'istributi!) !$ s!$t%are is i)'e&e)'e)t !$ its &*ysial l!ati!) !) t*e *ar'%are.
All le+els a) be i)stalle' +ertially >!) t!& !$ ea* !t*er !) !)e !m&uter? !r ea* le+el a) be
i)stalle' !) a se&arate !m&uter. 0*e &rese)tati!) a)' a&&liati!) ser+ers a) be 'i+i'e'
*!riC!)tally am!)5 a)y )umber !$ !m&uters. 0*e *!riC!)tal 'istributi!) !$ 'atabase
!m&!)e)ts- *!%e+er- 'e&e)'s !) t*e ty&e !$ 'atabase i)stalle'.
>C? SAP AG BC400 4
2.5
SAP AG 2001
9'cerpt $or an ABAP Progra%
Presentation
Ser"er
2ayer
Application
Ser"er
2ayer
8atabase
Work Process


ABAP Progra%
0*is 5ra&*i a) be sim&li$ie' $!r m!st t!&is 'isusse' 'uri)5 t*is !urse. 0*e i)terati!)
bet%ee) a sngle user a)' a sngle ABAP &r!5ram %ill be !$ &rimary i)terest t! us 'uri)5 t*is
!urse.
0*e e6at &r!esses i)+!l+e' i) user 'is&at*i)5 !) a) a&&liati!) ser+er are se!)'ary t!
u)'ersta)'i)5 *!% t! %rite a) ABAP &r!5ram. 0*ere$!re- %e %ill %!r( %it* a sim&li$ie'
5ra&*i t*at '!es )!t e6&liitly s*!% t*e 'is&at*er a)' t*e %!r( &r!ess. Certai) sli'es %ill-
*!%e+er- i)lu'e t*ese 'etails %*e)e+er t*ey are rele+a)t t! ABAP &r!5rammi)5.
ABAP &r!5rams are &r!esse' !) t*e a&&liati!) ser+er. 0*e 'esi5) !$ user dalogs a)'
database dalogs is- t*ere$!re- !$ &artiular im&!rta)e %*e) %riti)5 a&&liati!) &r!5rams.
>C? SAP AG BC400 5
2.6
SAP AG 2001
Black Black Bo' Bo'
?ie& $or the <ser
Presentation
Ser"er
2ayer
Application
Ser"er
2ayer
8atabase


Selection Screen 2ist Screen
M!st users are !)ly i)tereste' i) *!% a busi)ess tra)sati!) $l!%s a)' *!% t! e)ter 'ata i)t!
a)' 'is&lay 'ata $r!m a tra)sati!). 0*e te*)ial as&ets !$ &r!5rammi)5 are less i)teresti)5.
0*e user '!es )!t )ee' t! ()!% t*e &reise $l!% !$ t*e ABAP &r!5ram !) t*e a&&liati!)
ser+er. 0! t*e a+era5e user- t*e SAP system is li(e a Dbla( b!6.D
0e*)ially s&ea(i)5- t*ere are t*ree 'i$$ere)t ty&es !$ sree)sE 'y)ami sree)s !r 'y)&r!s-
seleti!) sree)s- a)' lists. 1a* ty&e !$ sree) &r!+i'es 'i$$ere)t ser+ies. 0*e 'e+el!&erFs tas(
is t! selet $!r ea* user 'ial!5 e6atly t*!se ty&es t*at are m!st suitable $!r t*e
a!m&lis*me)t !$ t*e tas(s !)er)e'. 9!r t*is reas!)- 'e+el!&ers s*!ul' *a+e &reise
()!%le'5e !$ t*e te*)ial as&ets.
>C? SAP AG BC400 6
2.7
SAP AG 2001
4nteraction Bet&een Ser"er 2ayers
Progra%
Start


ABAP -unti%e Syste%
ABAP Progra%
ABAP
Processing
Block
ABAP
Processing
Block
8atabase
Table
Ti%e
O)e t*e user &er$!rms a user ati!) >seleti)5 Enter, a $u)ti!) (ey- a me)u $u)ti!) !r a
&us*butt!)- $!r e6am&le?- !)tr!l is &asse' $r!m t*e &rese)tati!) ser+er t! t*e a&&liati!) ser+er.
O)ly ertai) &arts !$ t*e ABAP &r!5ram are &r!esse'.
/$ a $urt*er user 'ial!5 is tri55ere' $r!m %it*i) t*e ABAP &r!5ram- t*e system tra)smits t*e sree)
a)' &asses !)tr!l !)e a5ai) t! t*e &rese)tati!) ser+er.
>C? SAP AG BC400 A
2.8
SAP AG 2001
Sa%ple Progra% &ith Selection Screen and 2ist
Syste% Architecture and ABAP Progra%
Syste% Architecture and ABAP Progra%
Sa%ple Progra% &ith Selection Screen and 2ist
Sa%ple Progra% &ith Selection Screen and 2ist
>C? SAP AG BC400 8
2.9
SAP AG 2001
Ti%e
Progra%
Start


Progra% Start
8atabase
Table
-epository
.*e)e+er a user l!5s !) t! t*e system- a sree) is 'is&laye'. 9r!m t*is sree)- t*e user a) start
a) ABAP &r!5ram +ia a me)u &at* !r by e)teri)5 a tra)sati!) !'e.
>C? SAP AG BC400 8
2.10
SAP AG 2001
Ti%e
Progra%
Start


Syste% 2oads Progra% Conte't
8ata 7b6ects
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
Selection Screen
-epository
8atabase
Table
0*e system $irst l!a's t*e &r!5ram !)te6t !)t! t*e a&&liati!) ser+er. 0*e &r!5ram !)te6t
!)tai)s mem!ry areas $!r +ariables a)' !m&le6 'ata !bGets- i)$!rmati!) !) t*e sree)s $!r
user 'ial!5s- a)' ABAP &r!essi)5 bl!(s. 0*e ru)time system 5ets t*e &r!5ram i)$!rmati!)
$r!m t*e Re&!sit!ry- %*i* is a s&eial &art !$ t*e 'atabase.
0*e sam&le &r!5ram *as a seleti!) sree) as t*e user 'ial!5- a +ariable a)' a struture as 'ata
!bGets- a)' !)e ABAP &r!essi)5 bl!(. 0*e list t*at is use' t! 'is&lay t*e 'ata is reate'
'y)amially at ru) time.
0*e ABAP ru)time system !)tr!ls t*e subseBue)t &r!5ram $l!%.
>C? SAP AG BC400 #0
2.11
SAP AG 2001
Ti%e
Progra%
Start


-unti%e Syste% Sends Selection Screen
8ata 7b6ects
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
8atabase
Table
-epository
Beause t*e &r!5ram !)tai)s a seleti!) sree)- t*e ABAP ru)time system se)'s it t! t*e
&rese)tati!) ser+er. 0*e &rese)tati!) ser+er !)tr!ls t*e &r!5ram $l!% $!r as l!)5 as t*e user e)ters
'ata i) t*e i)&ut $iel's.
Seleti!) sree)s all!% users t! e)ter seleti!) riteria reBuire' by t*e &r!5ram.
>C? SAP AG BC400 ##
2.12
SAP AG 2001
Ti%e
Progra%
Start


4nput ?alues Are 4nserted into 8ata 7b6ects
8ata 7b6ects
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
8atabase
Table
-epository
As s!!) as t*e user *as $i)is*e' e)teri)5 'ata !) t*e seleti!) sree)- *e !r s*e a) tri55er $urt*er
&r!essi)5 !$ t*e &r!5ram by seleti)5 16eute.
0*e e)tere' 'ata is aut!matially &lae' i) its !rres&!)'i)5 'ata !bGets i) t*e &r!5ram a)' t*e
ABAP ru)time system resumes !)tr!l !$ &r!essi)5.
/) !ur sim&le &r!5ram e6am&le- t*ere is !)ly !)e ABAP &r!essi)5 bl!(. 0*e ABAP ru)time
system tri55ers seBue)tial &r!essi)5 !$ t*is ABAP &r!essi)5 bl!(.
/$ t*e e)tries ma'e by t*e user '! )!t *a+e t*e !rret ty&e- a) err!r messa5e is tri55ere'
aut!matially. 0*e user must !rret t*e e)tries.
>C? SAP AG BC400 #"
2.13
SAP AG 2001
Ti%e
Progra%
Start


Progra% -e5uests 8ata -ecord $ro% 8atabase
8atabase
Table
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
8ata 7b6ects
-epository
.it*i) t*e ABAP &r!essi)5 bl!(- a rea' aess t! t*e 'atabase is &r!5ramme'. 0*e &r!5ram
&asses t! t*e 'atabase i)$!rmati!) ab!ut %*i* 'atabase table t! aess a)' %*i* li)e i) t*e
table t! rea'.
>C? SAP AG BC400 #3
2.14
SAP AG 2001
Ti%e
Progra%
Start


8atabase -eturns 8ata -ecord to Progra%
8atabase
Table
8ata 7b6ects
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
-epository
0*e 'atabase retur)s t*e reBueste' 'ata re!r' t! t*e &r!5ram a)' t*e ru)time system e)sures t*at
t*is 'ata is st!re' i) t*e a&&r!&riate 'ata !bGets.
/$ a si)5le re!r' is aesse'- t*is 'ata !bGet is usually a struture t*at !)tai)s !m&!)e)ts $!r all
t*e reBuire' 'atabase $iel's.
>C? SAP AG BC400 #4
2.15
SAP AG 2001
Ti%e
Progra%
Start


-unti%e Syste% Sends 2ist
8atabase
Table
8ata 7b6ects
ABAP
Processing
Block
ABAP -unti%e Syste%
ABAP Progra%
-epository
0*e lay!ut !$ t*e subseBue)t list 'is&lay %as als! &r!5ramme' i)t! t*e &r!essi)5 bl!(. A$ter
!m&leti!)- t*e ru)time &r!5ram se)'s t*is list as a sree) t! t*e &rese)tati!) ser+er.
>C? SAP AG BC400 #5
2.16
SAP AG 2001
Course Content
Syste% Architecture and ABAP Progra%
Syste% Architecture and ABAP Progra%
Sa%ple Progra% &ith Selection Screen and 2ist
Sa%ple Progra% &ith Selection Screen and 2ist
>C? SAP AG BC400 #6
2.17
SAP AG 2001
3n"! 1 4ntroduction
3n"! 2 Progra% Flo& in an ABAP Progra%
3n"! 3 4ntroduction to the ABAP Workbench
3n"! 4 4ntroduction to the ABAP 8ictionary
3n"! % Basic ABAP 2anguage 9le%ents
3n"! 6 8ata -etrie"al
3n"! < 4nternal Progra% (odulari;ation &ith Subroutines
3n"! = The ABAP -unti%e Syste%
3n"! 9 <ser 8ialog 2ist
3n"! 10 <ser 8ialog Selection Screen
Assign%ent 7"er"ie& 4
Which Co%ponents o$ an ABAP Progra% Are 8iscussed
and in Which Chapter@
>C? SAP AG BC400 #A
2.18
SAP AG 2001
3n"! 11 <ser 8ialog Screen
3n"! 12 <ser 4nter$ace
3n"! 13 Perspecti"e: 8e"elop%ent o$ 4nternet Applications
3n"! 14 Cross=Progra% (odulari;ation
3n"! 1% So$t&are 2ogistics and So$t&are Ad6ust%ent
Appendi'
Assign%ent 7"er"ie& 44
>C? SAP AG BC400 #8
2.19
SAP AG 2001
8escribe in basic ter%s the architecture o$ the ->3
Syste%
8escribe in basic ter%s the e'ecution o$ a si%ple
dialog progra% using the ABAP runti%e syste%
Aou are no& able to:
Progra% Flo& o$ an ABAP Progra%: <nit Su%%ary
>C? SAP AG BC400 #8
3
SAP AG 2001
4ntroduction to the ->3 -epository
Working &ith the 7b6ect #a"igator
7rgani;ing 8e"elop%ents
8e"eloping an ABAP Progra%
Contents:
4ntroduction to the ABAP Workbench
>C? SAP AG BC400 #
3.2
SAP AG 2001
8escribe the structure o$ the ->3 -epository and
its search tools
<se the 7b6ect #a"igator $or your de"elop%ent
&ork
#a%e and use the utilities $or orderly so$t&are
de"elop%ent
Create de"elop%ent classes0 ABAP progra%s0
and transaction codes
At the conclusion o$ this unit0 you &ill be able to:
4ntroduction to the ABAP Workbench:
<nit 7b6ecti"es
>C? SAP AG BC400 "
3.3
SAP AG 2001
4ntroduction to the ->3 -epository
4ntroduction to the ->3 -epository
4ntroduction to the ->3 -epository
Working &ith the 7b6ect #a"igator
Working &ith the 7b6ect #a"igator
7rgani;ing 8e"elop%ents
7rgani;ing 8e"elop%ents
8e"eloping ABAP Progra%s
8e"eloping ABAP Progra%s
>C? SAP AG BC400 3
3.4
SAP AG 2001
The ->3 -epository
Presentation
Ser"er
2ayer
Application
Ser"er
2ayer
8atabase


ABAP Progra%
-epository
Custo%i;ing tables
Application tables
Cross=client Client=speci$ic
0*e 'atabase !)tai)s a&&liati!) a)' Cust!miCi)5 tables t*at are usually clent-specfc.
0*e 'atabase als! !)tai)s t*e R/3 Re&!sit!ry. 0*e ABAP Diti!)ary is &art !$ t*e R/3 Re&!sit!ry.
0*e %&' %epostory !)tai)s all t*e 'e+el!&me)t !bGets- $!r e6am&le- &r!5rams- 'e$i)iti!)s !$
'atabase tables- !r e)tral 'ata ty&e 'e$i)iti!)s. De+el!&me)t !bGets are t*ere$!re als! ()!%) as
Re&!sit!ry !bGets.
Re&!sit!ry !bGets are ne$er clent-specfcH t*ere$!re- t*ey a) be +ie%e' a)' use' i) all lie)ts.
>C? SAP AG BC400 4
3.5
SAP AG 2001
Structure o$ the ->3 -epository
( (
((
8e"elop%ent Classes
-epository 7b6ects
Function (odules
Progra%s
Tables
! ! !
F4
:-
((
S8
((
W(
Cust!
0*e R/3 Re&!sit!ry is sub'i+i'e' a!r'i)5 t! a&&liati!) !m&!)e)ts.
1a* a&&liati!) !m&!)e)t is $urt*er 'i+i'e' i)t! l!5ial sub'i+isi!)s alle' de$elopment classes.
Re&!sit!ry !bGets are !$te) ma'e u& !$ sub:!bGets t*at are t*emsel+es Re&!sit!ry !bGets.
.*e) y!u reate a Re&!sit!ry !bGet- y!u must assi5) it t! a 'e+el!&me)t lass.
>C? SAP AG BC400 5
3.6
SAP AG 2001
SAP
SAP Application :ierarchy
Cross=Application Co%ponents
Accounting = eneral
Financial Accounting
!!!
FBAS Financial Accounting Basis
!!!
F4=2 eneral 2edger Acctg
F4=2C Consolidation
!!!
Treasury
Controlling
B
B
Application co%ponent
8e"elop%ent class
Selected subtree
4n$or%ation Syste%
B
B
B
B
B
B
CA
AC
F4
T-
C7
!!!
0*e struture !$ t*e a&&liati!) !m&!)e)ts is s*!%) i) t*e applcaton herarchy. 9r!m t*e SAP
1asy Aess me)u- y!u aess t*e a&&liati!) *ierar*y by *!!si)5
Tools ABAP Workbench Overview Application Hierarchy.
0*e a&&liati!) !m&!)e)ts are 'is&laye' i) a tree struture i) t*e a&&liati!) *ierar*y. 16&a)'i)5
a !m&!)e)t 'is&lays all t*e 'e+el!&me)t lasses t*at are assi5)e' t! t*at !m&!)e)t.
@!u a) selet a subtree !r bra)* a)' )a+i5ate $r!m t*e a&&liati!) *ierar*y t! t*e R/3 Re&!sit!ry
/)$!rmati!) System. 0*e system t*e) !llets all 'e+el!&me)t lasses $!r t*e bra)* selete' a)'
&asses t*em t! t*e Re&!sit!ry /)$!rmati!) System.
>C? SAP AG BC400 6
3.7
SAP AG 2001
->3 -epository 4n$or%ation Syste%
-epository 4n$or%ation Syste%
Business engineering
ABAP 8ictionary
Basic ob6ects
8atabase tables
?ie&s
8ata ele%ents
Structures
Table types
!!!
7ther ob6ects
Fields
Progra%%ing
Function Builder
Progra% 2ibrary
Prog! en"iron%ent
Progra% sub=ob6ects
ABAP ob6ects
Class library
Co%ponents o$ classes
Co%ponents o$ inter$aces
9n"iron%ent
@!u a) use t*e Re&!sit!ry /)$!rmati!) System t! sear* $!r s&ei$i Re&!sit!ry !bGets. Suitable
sear* riteria are a+ailable $!r t*e +ari!us Re&!sit!ry !bGets.
.*i* !bGets are t! be $!u)' usi)5 t*e Re&!sit!ry /)$!rmati!) System 'e&e)'s !) *!% y!u 5et
t*ereE
9r!m %it*i) t*e a&&liati!) *iera*y- selet t*e Information system >'!uble:li( t*e selete'
a&&liati!) !m&!)e)t !r 'e+el!&me)t lass?. 0*is $ilters t*e t*e res&eti+e Re&!sit!ry !bGets.
9r!m t*e SAP 1asy Aess me)u- *!!se Tools ABAP Workbench Overview Information
system. 0*e system lists all t*e Re&!sit!ry ObGets a+ailable $!r sear*i)5.
>C? SAP AG BC400 A
3.8
SAP AG 2001
Working With the 7b6ect #a"igator
4ntroduction to the ->3 -epository
4ntroduction to the ->3 -epository
Working &ith the 7b6ect #a"igator
Working &ith the 7b6ect #a"igator
7rgani;ing 8e"elop%ents
7rgani;ing 8e"elop%ents
8e"eloping ABAP Progra%s
8e"eloping ABAP Progra%s
>C? SAP AG BC400 8
3.9
SAP AG 2001
Function Builder Function Builder
Screen Painter Screen Painter
ABAP ABAP 8ictionary 8ictionary ABAP 9ditor ABAP 9ditor
7b6ect
#a"igator
(enu Painter (enu Painter
ABAP Workbench Tools
8ebugger 8ebugger
Class Builder Class Builder
F4 :-
((
S8
((
W(
Cust!
0*e ABAP Workbench !)tai)s 'i$$ere)t t!!ls $!r e'iti)5 Re&!sit!ry !bGets. 0*ese t!!ls a) be
use' t*r!u5*!ut t*e e)tire s!$t%are 'e+el!&me)t yle. 0*e m!st im&!rta)t t!!ls $!r reati)5 a)'
e'iti)5 Re&!sit!ry !bGets are as $!ll!%sE
0*e ABAP (dtor $!r e'iti)5 s!ure te6t
0*e ABAP Diti!)ary $!r &r!essi)5 'atabase table 'e$i)iti!)s- e)tral 'ata ty&es- a)' m!re
0*e Sree) Pai)ter $!r !)$i5uri)5 sree)s >sree)s %it* $u)ti!)s $!r user 'ial!5s?
)enu Panter $!r 'esi5)i)5 t*e user i)ter$ae >me)u bar- sta)'ar' t!!lbar- a&&liati!) t!!lbar?
>see Interfaces)
0*e *uncton Bulder $!r &r!essi)5 $u)ti!) m!'ules
0*e Class Buil'er $!r &r!essi)5 e)tral lasses
@!u a) start t*ese t!!ls i) t*ree %aysE
Diretly $r!m t*e 1asy Aess me)u.
;si)5 t*e +b,ect -a$gator. 0*is *as a tree 'ia5ram !$ all !bGets %it*i) a 'e+el!&me)t lass !r
&r!5ram. D!uble:li( !) a) !bGet t! start t*e res&eti+e t!!l.
By '!uble:li(i)5 $r!m !)e t!!l t! t*e )e6t- a)' ba( a5ai).
>C? SAP AG BC400 8
3.10
SAP AG 2001
Screen Structure in the 7b6ect #a"igator
Si;e o$ display area can be changed
-ight=click
Conte't %enu
Full screen
on>o$$
Conte't %enu
-ight=click
#a"igation area
Tool area
0*e ObGet Na+i5at!r sree) is 'i+i'e' i)t! t%! areasE
A )a+i5ati!) area $!r 'is&layi)5 a) !bGet list as a *ierar*y tree
A t!!l area $!r 'is&layi)5 a)' e'iti)5 a 'e+el!&me)t !bGet usi)5 t*e !rret t!!l
@!u a) 'is&lay !r *i'e t*e *ierar*y area.
@!u a) selet $u)ti!)s $r!m a !)te6t me)u i) b!t* sree) areas. @!u are 5i+e) a *!ie !$ !)ly
t*!se $u)ti!)s t*at are &r!+i'e' $!r 'is&layi)5 !r e'iti)5 t*e !bGet t! %*i* y!u are &!i)ti)5.
Ri5*t:li( !) t*e !bGet t! !&e) t*e !)te6t me)u.
>C? SAP AG BC400 #0
3.11
SAP AG 2001
Working &ith the #a"igation Area
8ictionary ob6ects
Progra%s
SAPBC400WB8C9TT4#CSTA
SAPBC400WBTC9TT4#CSTA
Function groups
BC400
Classes
C2CBC400
BC400
Development Class
C!""
<se o$ na"igation
history
Appl#$at#on H#e%a%$&'
Development Class
P%o(%am
F)n$t#on G%o)p
Class * Inte%+a$e
Inte%net Se%v#$e
Lo$al O,-e$ts
Fa"orites
-e$resh ob6ect list
8isplay higher=le"el
ob6ect list
8ouble=click on a
-epository ob6ect &ith
subob6ects: 2ist o$
subob6ects
8ouble=click on a
-epository ob6ect &ith
subob6ects: 2ist o$
subob6ects
8ouble=click on a
-epository ob6ect &ith
subob6ects: 2ist o$
subob6ects
0*e Re&!sit!ry !bGets are !r5a)iCe' i) a *ierar*yE
A) a&&liati!) !m&!)e)t a) *a+e 'i$$ere)t 'e+el!&me)t lasses.
A 'e+el!&me)t lass a) !)tai) 'i$$ere)t Re&!sit!ry !bGetsE &r!5rams- $u)ti!) 5r!u&s- ABAP
Diti!)ary !bGets- a)' s! !).
1a* Re&!sit!ry !bGet a) *a+e 'i$$ere)t sub!bGets assi5)e' t! itE
Sub!bGets bel!)5i)5 t! a &r!5ramE 5l!bal 'ata- ty&es- e+e)ts- sub&r!5rams- a)' s! !)
Sub!bGets bel!)5i)5 t! a $u)ti!) 5r!u&E 5l!bal 'ata- $u)ti!) m!'ules- a)' s! !)
@!u a) e)ter t*e ty&e !$ !bGet list a)' t*e !bGet )ame i) t*e u&&er &art !$ t*e )a+i5ati!) area. 0*e
!bGet list is t*e) 'is&laye' i) t*e )a+i5ati!) area.
0! 'is&lay t*e sub!bGets- '!uble:li( a) !bGet %it*i) t*e !bGet list.
/$ a) !bGet is )!t i) a) !bGet list- y!u a) 'is&lay it by usi)5 t*e res&eti+e t!!l i) t*e t!!l area.
@!u a) )a+i5ate bet%ee) !bGet lists eit*er by eit*er hstory !r herarchy.
@!u a) a'' !bGet lists t*at y!u e'it $reBue)tly t! y!ur $a+!rites.
>C? SAP AG BC400 ##
3.12
SAP AG 2001
#a"igation in the Tool Area
#a"igation stack
Functions o$ the
current tool
Sho& na"igation
&indo&
:ide na"igation
&indo&
<se o$ na"igation
history
<se o$ na"igation
history
/) t*e t!!l area- y!u a) 'is&lay a %i)'!% s*!%i)5 y!ur )a+i5ati!) *ist!ry- t*at is- a list !$ t*e
!bGets y!u *a+e 'is&laye' si)e y!u starte' t*e ObGet Na+i5at!r i) t*e tool area.
0*e !bGet urre)tly 'is&laye' i) t*e t!!l area is *i5*li5*te' i) a 'i$$ere)t !l!r.
>C? SAP AG BC400 #"
3.13
SAP AG 2001
Synchroni;ation o$ #a"igation and Tool Areas
8isplay
Change
!!!
8isplay ob6ect list
8ouble=click on a
-epository ob6ect
&ithout subob6ects or
choose conte't %enu:
8isplay>change in tool
area
Na+i5ati!) i) t*e )a+i5ati!) area is l!5ially ndependent from )a+i5ati!) i) t*e t!!l area. 0*is
all!%s $!r sree)s t! be use' i) a $le6ible ma))er.
/$ y!u %is*- y!u a) sy)*r!)iCe t*e t%! areasE
@!u a) dsplay an ob,ect i) t*e t!!l area by '!uble:li(i)5 it- !r by seleti)5 t*e !)te6t me)u
$r!m %it*i) t*e )a+i5ati!) area. 0*e system aut!matially selets t*e a&&r!&riate t!!l $!r
&r!essi)5 t*e !bGet y!u selete'.
0! dsplay the ob,ect lst t*at bel!)5s t! a) !bGet y!u are urre)tly &r!essi)5 i) t*e t!!l area-
*!!se Display obect list.
0! create ob,ects $r!m a) !bGet list- y!u a) use t*e !)te6t me)u $!r t*at !bGet ty&e. /$ t*ere is )!
e)try i) t*e !bGet list $!r t*e reBuire' !bGet ty&e- y!u a) reate a)y )umber !$ !bGets usi)5 E!it
obect !r Other obect.
>C? SAP AG BC400 #3
3.14
SAP AG 2001
7rgani;ing 8e"elop%ents
4ntroduction to the ->3 -epository
4ntroduction to the ->3 -epository
Working &ith the 7b6ect #a"igator
Working &ith the 7b6ect #a"igator
7rgani;ing 8e"elop%ents
7rgani;ing 8e"elop%ents
8e"eloping ABAP Progra%s
8e"eloping ABAP Progra%s
>C? SAP AG BC400 #4
3.15
SAP AG 2001
8e"elop%ent Syste% Production Syste%
Transporting -epository 7b6ects
F4 :-
((
S8
((
W(
Cust!
Change
-e5uest -e5uest
F4 :-
((
S8
((
W(
Cust!
De+el!&me)t &r!Gets are al%ays im&leme)te' i) a 'e+el!&me)t system a)' t*e) tra)s&!rte' t! t*e
)e6t system.
Re&!sit!ry !bGets are aut!matially assi5)e' t! a tra)s&!rt r!ute base' !) t*eir bel!)5i)5 t! a
&artiular 'e+el!&me)t lass a)' !) t*eir atual $u)ti!).
A 'eisi+e riteri!) $!r !mbi)i)5 t*e 'e+el!&me)t &r!Gets is- t*ere$!re- %*i* Re&!sit!ry !bGets
)ee' t! be tra)s&!rte' t!5et*er beause !$ t*eir 'e&e)'e)ies.
@!u s*e'ule t*e group transport !$ t*e Re&!sit!ry !bGets usi)5 a change re.uest.
>C? SAP AG BC400 #5
3.16
SAP AG 2001
Scheduling a 8e"elop%ent Pro6ect
Schedule: (onday
-e5uest is released
Tea%:
Pro6ect (anager:
F-A
F-A
BC400=00
BC400=0+
BC400=02
BC400=03
!!!
Friday !!!
2ocking 7b6ects $or #on 2ocking 7b6ects $or #on=Pro6ect =Pro6ect (e%bers (e%bers
S*e'uli)5 a 'e+el!&me)t &r!Get usi)5 a *a)5e reBuest !+ers t*e $!ll!%i)5 as&etsE
All em&l!yees i) t*e &r!Get start t*eir %!r( !) a 'e$i)e' 'ate.
1m&l!yees *a+e t*e *a)e t! $!ll!% u& a)' *e( t*eir ati+ities se&arately.
0*e res&eti+e Re&!sit!ry !bGets a) be &r!esse' by all em&l!yees i)+!l+e' i) t*e &r!Get. 9!r
t*!se 'e+el!&ers %*! '! )!t bel!)5 t! t*e team- t*e Re&!sit!ry !bGets remai) l!(e' u)til t*e
&r!Get is !m&lete'.
0*e 5r!u& tri55ers t*e tra)s&!rt !$ all t*e res&eti+e Re&!sit!ry !bGets.
>C? SAP AG BC400 #6
3.17
SAP AG 2001
Workbench 7rgani;er: Change -e5uests
Pro6ect -epresentation in the
Workbench 7rgani;er
Tea%:
Pro6ect (anager:
F-A
F-A
BC400=00
BC400=0+
BC400=02
BC400=03
!!!
#han(e re.ues!s "n)ol)"n( user B#400900
#han(eable
,rans$or!able
0,3>9000%1 #ARS8?
0,3>9000%2 #ARS8?
0,3>9000%3 B#400900
Re$or! source
@B#400A00AF/0GB,/0S,
ABAP $ro(ra*
0,3>9000%4 B#400901
0,3>9000%% B#400902
0,3>9000%6 B#400903
0,3>9000%< ...
-e5uest nu%ber
Pro6ect
(anager
Task nu%ber
-epository ob6ects
created or corrected
by e%ployee
<ser
At t*e be5i))i)5 !$ a 'e+el!&me)t &r!Get- t*e pro,ect manager reates a *a)5e reBuest i) t*e
Workbench +rgan/er. 0*e &r!Get ma)a5er assi5)s all &r!Get team members t! t*e *a)5e
reBuest. 0*e .!r(be)* Or5a)iCer t*e) reates a task $!r ea* &r!Get 'e+el!&er.
9r!m )!% !)- %*e)e+er a) em&l!yee assi5)s a Re&!sit!ry !bGet t! t*is *a)5e reBuest- t*e
Re&!sit!ry !bGet is aut!matially e)tere' i) t*e em&l!yeeIs tas(. 0*us all Re&!sit!ry !bGets t*at a)
em&l!yee %!r(s !) 'uri)5 a 'e+el!&me)t &r!Get are !llete' %it*i) *is !r *er tas( $!l'er. 0*e
Re&!sit!ry !bGets are t*ere$!re l!(e' $!r all 'e+el!&ers %*! '! )!t bel!)5 t! t*is &artiular
&r!Get.
;)li(e t*e l!5ial $u)ti!)al 'i+isi!)s t*at se&arate Re&!sit!ry !bGets t*r!u5* t*e res&eti+e
'e+el!&me)t lass- *a)5e reBuests are &r!Get:relate' a)'- t*ere$!re- are limite' t! t*e tme
schedule i)+!l+e'. 0*us- alt*!u5* a &r!5ram al%ays bel!)5s t! !)ly !)e 'e+el!&me)t lass- it a)
bel!)5 t! 'i$$ere)t *a)5e reBuests at 'i$$ere)t times.
>C? SAP AG BC400 #A
3.18
SAP AG 2001
9'a%ple: Creating 8e"elop%ent Classes
#rea!e De)elo$*en! #lass
8e"elop%ent Class
Short Te't
Transport 2ayer
Person -esponsible
So$t&are Co%ponent
Application Co%ponent
DBC400C00
9'ercises group 00

D89?
BC400=00
:7(9
CA
Where should the de"elop%ent ob6ects be transported to@
To &hich application
co%ponent does the
de"elop%ent class belong@
Co%ply &ith custo%er na%espace
@!u a) reate a 'e+el!&me)t lass i) t*e ObGet Na+i5at!r.
As !$ Release 4.6C- y!u a) *!!se t*e !bGet ty&e Development "lass a)' e)ter t*e )ame !$ t*e
'e+el!&me)t lass i) t*e i)&ut $iel'. Ma(e sure y!u !m&ly %it* t*e ust!mer )ames&ae
!)+e)ti!)s. /$ t*e 'e+el!&me)t lass '!es )!t alrea'y e6ist- t*e system 'is&lays t*e "reate
Development "lass 'ial!5 b!6.
9!r Release 4.6A a)' 4.6B- y!u must *!!se E!it obect !r Other obect i) t*e i)itial sree). 1)ter
t*e )ame !$ t*e 'e+el!&me)t lass i) t*e i)&ut $iel' !) Other tab &a5e.
@!u s*!ul' *e( t*e setti)5s $!r t*e $!ll!%i)5 attributesE
Transport layer - /$ y!u arry !ut y!ur !%) 'e+el!&me)ts- y!u must set u& a tra)s&!rt layer $!r
ust!mer 'e+el!&me)ts.
Person responsble : 0*is &ers!) *as $ull res&!)sibility $!r t*e !bGets i) t*is 'e+el!&me)t lass.
0*e system aut!matially uses t*is user )ame as a 'e$ault +alue.
0oft#are component - 9!r ust!mer 'e+el!&me)ts y!u s*!ul' e)ter HOME as t*e s!$t%are
!m&!)e)t. 0! 5et 'etaile' i)$!rmati!) !) t*e $iel'- selet 9# *el&.
Applcaton component - ;se' t! s&ei$y t*e l!ati!) !$ t*e 'e+el!&me)t lass %it*i) t*e
a&&liati!) *ierar*y.
>C? SAP AG BC400 #8
3.19
SAP AG 2001
Assign%ent to a Change -e5uest
8e"elop%ent class>p!!
Pro%pt $or transportable Workbench re5uest
DBC400C00
'& re.ues!s
Pro%pt $or transportable Workbench re5uest
#han(e re.ues!s "n)ol)"n( user B#400900
#han(eable
,rans$or!able
0,3>9000%1 FRC
0,3>9000%2 FRC
0,3>9000%3 B#400900
0,3>9000%4 B#400901
8ouble=click
re5uest nu%ber
-e5uest 4T3E/00)+
9'ercises $or participants o$ BC400
Workbench re5uest
All Re&!sit!ry !bGets t*at are reate' !r *a)5e' must be assi5)e' t! t*e *a)5e reBuest !$ t*e
res&eti+e &r!Get. 9!r t*is !urse- t*e trai)er *as reate' a *a)5e reBuest $!r t*e &r!Get alle'
D16erises $!r Partii&a)ts !$ BC400D. 1a* 5r!u& *as a tas( %it*i) t*is *a)5e reBuest.
0! 'is&lay all *a)5e reBuests i) %*i* y!u *a+e a tas(- selet Own re#$ests.
.*e) y!u assi5) all Re&!sit!ry !bGets >'e+el!&me)t lasses- &r!5rams- a)' s! !)? t! t*is *a)5e
reBuest- t*e system ta(es are !$ t*e e6at assi5)me)t $!r y!ur tas(.
>C? SAP AG BC400 #8
3.20
SAP AG 2001
8e"eloping ABAP Progra%s
4ntroduction to the ->3 -epository
4ntroduction to the ->3 -epository
Working &ith the 7b6ect #a"igator
Working &ith the 7b6ect #a"igator
7rgani;ing 8e"elop%ents
7rgani;ing 8e"elop%ents
8e"eloping ABAP Progra%s
8e"eloping ABAP Progra%s
>C? SAP AG BC400 "0
3.21
SAP AG 2001
Features o$ the ABAP Progra%%ing 2anguage
There$ore0 it is designed $or dialog=based0 business applications!
The ABAP progra%%ing language !!!
:as de$ined types
9nables %ulti=language applications
:as SF2 e%bedded &ithin it
:as been enhanced as an ob6ect=oriented language
4s plat$or%=independent
4s do&n&ards co%patible
0! su&&!rt 'ata &r!essi)5 by ty&es- ABAP !)tai)s a systemati ty&e *ierar*y. 0y&e !)+ersi!)s
a)' ty&e asti)5 are su&&!rte'.
;si)5 tra)slatable te6t eleme)ts- y!u a) 'e+el!& multi:la)5ua5e a&&liati!)s.
0*e OP1N S43 sta)'ar' embe''e' i) ABAP all!%s 'iret 'atabase aesses.
ABAP ObGets is t*e !bGet:!rie)te' e)*a)eme)t !$ t*e ABAP &r!5rammi)5 la)5ua5e.
0*e ABAP ru)time system is !)e !$ t*e R/3 Basis !m&!)e)ts a)' is &lat$!rm:i)'e&e)'e)t.
ABAP !)ti)ues t! e+!l+e $r!m release t! release. /$ a) !l' sy)ta6 stateme)t is re&lae' by a better
!)e- y!u a) still ru) t*e !l' stateme)t.
>C? SAP AG BC400 "#
3.22
SAP AG 2001
DATA .a/s$a%% TYPE s$a%%0
START1OF1SELECTION0

SELECT 2 FROM s$a%%
INTO CORRESPONDING FIELDS OF .a/s$a%%0
NE31LINE0
3RITE .a/s$a%%1$a%%#40
3RITE .a/s$a%%1$a%%name0
3RITE .a/s$a%%1)%l0
ENDSELECT0
eneral ABAP Synta' 4
Additions and operands
,dependent on key&ords.
ABAP ABAP
key&ord key&ord
START1OF1SELECTION0 START1OF1SELECTION0
SELECT SELECT
ENDSELECT0 ENDSELECT0
3RITE 3RITE
0 0
0 0
0 0
Period as sy%bol $or closing Period as sy%bol $or closing
the the ABAP ABAP state%ent state%ent
DATA DATA 0 0
NE31LINE0 NE31LINE0
3RITE 3RITE
3RITE 3RITE 0 0
ABAP &r!5rams !)sist u& !$ i)'i+i'ual stateme)ts.
1a* stateme)t e)'s %it* a &eri!'.
0*e $irst %!r' i) a stateme)t is alle' a key#ord.
.!r's must al%ays be se&arate' by at least !)e s&ae.
Stateme)ts a) be i)'e)te'.
Stateme)ts a) ta(e u& m!re t*a) !)e li)e.
A si)5le li)e a) !)tai) multi&le stateme)ts.
0*e ABAP ru)time system is )!t ase se)siti+eH t*at is- it '!es not 'isti)5uis* bet%ee) l!%erase
a)' u&&erase letters $!r (ey%!r's- a''iti!)s- a)' !&era)'s. 0! ma(e it easier t! se&arate t*em
+isually- i) t*is !urse all (ey%!r's a)' t*eir a''iti!)s are i) u&&erase a)' all !&era)'s are i)
l!%erase.
9!r i)'e)tati!)s a)' $!r !)+erti)5 u&&erase a)' l!%erase letters- use t*e Pretty Pai)ter $u)ti!).
C*!!se %tilities &ettin's ABAP E!itor Pretty Printer
>C? SAP AG BC400 ""
3.23
SAP AG 2001
2 $omments 000
2 $omments 000
2 $omments 000
DATA .a/s$a%% TYPE s$a%%0
START1OF1SELECTION0

SELECT 2 FROM s$a%% 5 $omments 000
INTO CORRESPONDING FIELDS OF .a/s$a%%0
NE31LINE0
3RITE .a/s$a%%1$a%%#46
.a/s$a%%1$a%%name6
.a/s$a%%1)%l0
ENDSELECT0
: :
6 6
6 6
0 0
eneral ABAP Synta' 44
Chained Chained
State%ent State%ent
2 2
2 2
2 2
5 5
Co%%ents Co%%ents
;se a) asteris( >J? t! i)tr!'ue comment lnes. 0*e ABAP ru)time system i5)!res t*e !mme)t
li)e.
0$ y!u %a)t t! e)ter a !mme)t i) t*e mi''le !$ a starte' li)e- e)ter '!uble Bu!tes.@!u a) !mbi)e
!)seuti+e stateme)ts #th an dentcal begnnng i)t! a si)5le chaned statementE
Cl!se t*e i'e)tial be5i))i)5 &art %it* a !l!).
Se&arate i)'i+i'ual eleme)ts t*at !me a$ter t*e !l!) by !mmas.
;se bla)( s&aes a)' li)e brea(s be$!re a)' a$ter t*e se&arat!rs >!l!)s- !mmas- a)' &eri!'s?.
0*e ABAP ru)time system !)si'ers t*e i)'i+i'ual &arts !$ a *ai)e' stateme)t t! be si)5le
stateme)ts.
>C? SAP AG BC400 "3
3.24
SAP AG 2001
-eturn ?alue A$ter ABAP State%ents
PARAMETERS pa/$a%% TYPE s$a%%1$a%%#40
DATA .a/s$a%% TYPE s$a%%0
START1OF1SELECTION0

SELECT SINGLE 2 FROM s$a%%
INTO CORRESPONDING FIELDS OF .a/s$a%%
3HERE $a%%#4 7 pa/$a%%0
IF s'1s),%$ E8 "0
NE31LINE0
3RITE: .a/s$a%%1$a%%#46
.a/s$a%%1$a%%name6
.a/s$a%%1)%l0
ELSE0
3RITE 9So%%'6 no 4ata +o)n4:90
ENDIF0
s' s'1 1s),%$ s),%$
.it* se+eral ABAP stateme)ts- t*e ABAP ru)time system %rites a retur) !'e i)t! t*e system $iel'
sy-subrc t! i)'iate *!% suess$ully t*e stateme)t %as e6eute'
0*e retur) !'e Cer! >0? mea)s t*at t*e stateme)t %as suess$ul..
Rea' t*e '!ume)tati!) $!r t*e res&eti+e stateme)ts t! $i)' !ut %*et*er a)' *!% t*is retur) !'e is
set i) i)'i+i'ual ases.
>C? SAP AG BC400 "4
3.25
SAP AG 2001
With T7P 4nclude
Create Progra%
Progra%
DBC400C00CS
Creating an ABAP Progra%
Attributes
ABAP: Progra% Attributes !!!
Title
!!!
Type
Status
Application
Fi'ed point arith%etic
9'ecutable progra%
Test progra%
Co%ply &ith custo%er na%espaceG
9r!m t*e Obect (avi'ator, y!u a) reate a &r!5ram usi)5 !)e !$ t*e $!ll!%i)5 !&ti!)sE
/) t*e )a+i5ati!) area- *!!se Pro'ram as t*e !bGet ty&e a)' e)ter a &r!5ram )ame. Be sure t!
!m&ly %it* t*e ust!mer )ames&ae !)+e)ti!)s. /$ t*e &r!5ram '!es )!t e6ist- t*e system
'is&lays t*e 'ial!5 seBue)e t*at lets y!u reate a &r!5ram. >0*is &r!e'ure is &!ssible !)ly as !$
Release 4.6C.?
Dis&lay t*e 'e+el!&me)t lass $!r %*i* y!u %a)t t! reate t*e &r!5ram. Start t*e 'ial!5 seBue)e
$!r reati)5 a &r!5ram usi)5 t*e 'e+el!&me)t lass !)te6t me)u !r t*e Pro'ram )!'e.
Selet Other obect))) !r E!it obect. Selet t*e Pro'ram obects tab a)' e)ter t*e )ame. Selet
"reate)
/) t*is !urse- 'eselet With Top Incl$!e >by rem!+i)5 t*e *e( mar( $r!m t*e *e(b!6?. >/$ y!u
'!)Ft '! t*is- y!ur s!ure te6t %!ul' be 'istribute' t! se+eral &r!5rams.?
C*a)5e t*e title t! a mea)i)5$ul s*!rt te6t.
C*!!se Test pro'ram as t*e &r!5ram status $!r all ABAP !urses.
>C? SAP AG BC400 "5
3.26
SAP AG 2001
Eey&ord 8ocu%entation in the ABAP 9ditor
START1OF1SELECTION0
SELECT SINGLE 2 FROM s$a%%
INTO .a/s$a%%
3HERE $a%%#4 7 pa/$a%0
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s$a%%
TO s,$!""/$a%%#e%0
CALL SCREEN <""0
MO;E1CORRESPONDING s,$!""/$a%%#e%
TO .a/s$a%%0
3RITE: .a/s$a%%1$a%%#46
.a/s$a%%1$a%%name6
.a/s$a%%1$)%%$o4e0
ENDIF0
3RITE 3RITE
9ditor :elp
ABAP 7"er"ie&
ABAP Ter%
ABAP #e&s
ABAP 8ocu and 9'a%ples
Bel$
i
3RITE
F+
Eey&ord
8ocu%entation
@!u a) l!ate (ey%!r' '!ume)tati!) $!r a) ABAP stateme)t byE
P!i)ti)5 t! a stateme)t a)' seleti)5 F1 t! 5! 'iretly t! t*e '!ume)tati!) $!r t*e
stateme)t
Seleti)5 Information t! 5! t! a seleti!) %i)'!% $!r t*e +ari!us +ie%s !$ t*e (ey%!r'
'!ume)tati!).
C*!!se *elp &AP +ibrary B" Basis "omponents t! aess e6te)si+e !)li)e
'!ume)tati!) !) all t*e t!!ls a)' t!&is t*at relate t! t*e ABAP .!r(be)*.
>C? SAP AG BC400 "6
3.27
SAP AG 2001
4nacti"e and Acti"e 8e"elop%ent 7b6ects
Progra% +0
inacti"e "ersion
Sa"ed0
$or de"elop%ent
and testing
Acti"ely integrated0
$or syste%=&ide
usage
Progra% 30
inacti"e "ersion
Progra% 20
acti"e "ersion
Progra% 30
acti"e "ersion
Progra% +0
acti"e "ersion
Acti"ate
.*e)e+er y!u reate a 'e+el!&me)t !bGet- !r *a)5e a)' t*e) sa+e it- t*e system st!res a) nact$e
$erson !)ly i) t*e R/3 Re&!sit!ry.
Be$!re a Re&!sit!ry !bGet is a+ailable !) a system:%i'e basis- it must $irst be a+ailable as a) act$e
$erson. 0*is ati+e +ersi!) !$ y!ur &r!5ram %ill be use' %*e)e+er a user %a)ts t! e6eute y!ur
&r!5ram.
/$ y!ur &r!5ram is a+ailable i) b!t* +ersi!)s- y!u a) s%it* $r!m !)e +ersi!) t! t*e !t*er i) 'is&lay
m!'e.
.*e)e+er y!u ati+ate a &r!5ram- t*e system $irst 'is&lays a list !$ all i)ati+e !bGets t*at y!u *a+e
&r!esse'. 0*is is alle' t*e #orklst. /$ y!u !)ti)ue t! ati+ate t*e &r!5ram- t*e $!ll!%i)5
*a&&e)sE
0*e system sa+es t*e &r!5ram- t*at is- it st!res !r !+er%rites t*e i)ati+e +ersi!).
0*e system &er$!rms a sy)ta6 *e(.
0*e system st!res t*e ati+e +ersi!) !r !+er%rites it.
>C? SAP AG BC400 "A
3.28
SAP AG 2001
enerating -unti%e 7b6ects
sa"ed0
$or de"elop%ent>testing
acti"ely integrated0
$or syste%=&ide usage
Progra% 30
inacti"e "ersion
Progra% +0
acti"e "ersion
Progra% 20
acti"e "ersion
Progra% 30
acti"e "ersion
For syste%=&ide usage
Progra% Progra% 30 30
generated "ersion generated "ersion
enerate
,auto%atically.
Progra% Progra% 30 30
te%porary te%porary
generated "ersion generated "ersion
enerate
,auto%atically.
.*e) y!u 5e)erate a 'e+el!&me)t !bGet- t*e system reates >!m&iles? a se&arate ru)time !bGet
>3OAD? a)' st!res it i) t*e R/3 Re&!sit!ry.
0*is 5e)erate' +ersi!) is t*e) t*e +ersi!) t*at is e6eute' >i)ter&rete'?.
Ge)erati!) ta(es &lae aut!matially- but it a) be tri55ere' e6&liitly.
/$- $!r e6am&le- a user %a)ts t! e6eute y!ur &r!5ram a)' t*ere is still )! 5e)erate' +ersi!)- t*e
system %ill use t*e ati+e +ersi!) $!r 5e)erati!).
@!u a)- *!%e+er- 'etermi)e %*i* +ersi!) y!u %a)t t! e6euteE
0! e6eute t*e ati+e +ersi!)- start y!ur &r!5ram $r!m t*e )a+i5ati!) area.
0! e6eute t*e i)ati+e +ersi!)- test a) e6eutable &r!5ram $r!m t*e ABAP 1'it!r. 0*e system
tem&!rarily reates a 5e)erate' +ersi!).
/) t*is %ay- 'e+el!&me)t a) !)ti)ue #thout changng the current system status. All *a)5es t!
t*e 'e+el!&me)t !bGet be!me +isible system %i'e !)ly %*e) t*e &r!5ram is ati+ate' a5ai). .it*
i)ati+e +ersi!)s- y!u *a+e a l!al- se&arate +ie% !$ t*e R/3 Re&!sit!ry- %*i* &r!+i'es t*e basis $!r
a local runtme system.
>C? SAP AG BC400 "8
3.29
SAP AG 2001
Creating Transaction Codes
Syste% Syste% :elp :elp
DBC400C00CS
Create Report Transaction
Transaction code D00S
8e"elop%ent class DBC400C00
Transaction te't
Progra%
!!!
!!!
DBC400C00CS
Classi$ication
Pro$essional <ser Transaction
9asy Web transaction
!!!
!!!
/$ y!u %a)t t! i)lu'e a &r!5ram i) r!le me)us !r i) t*e ,avorites i) y!ur SAP 1asy Aess me)u-
y!u must assi5) a tra)sati!) !'e t! it.
/) t*e ObGet Na+i5at!r- 'is&lay t*e !bGet list $!r y!ur &r!5ram. Ri5*t:li( t*e &r!5ram )ame a)'
*!!se "reate Transaction. C!m&ly %it* t*e ust!mer )ames&ae !)+e)ti!)s.
C*!!se Pro'ram an! &election &creen -.eport Transaction) i$ t*e &r!5ram is a) e6eutable
&r!5ram)
O) t*e )e6t sree)- e)ter t*e )ame !$ t*e &r!5ram. C*!!se Professional %ser Transaction.
Sa+e t*e tra)sati!) !'e.
Si)e ea* tra)sati!) !'e is a Re&!sit!ry !bGet- y!u must assi5) it t! a 'e+el!&me)t lass a)' t! a
*a)5e reBuest !) t*e $!ll!%i)5 sree)s.
>C? SAP AG BC400 "8
3.30
SAP AG 2001
Syste% Syste% :elp :elp
Adding a Transaction Code to the
SAP 9asy Access (enu
Fa"orites
SAP (enu
SAP Easy Access
7b6ect #a"igator
Add transaction
9nter Transaction (anually
Transaction code
D00S
0! i)lu'e a tra)sati!) !'e i) t*e y!ur r!le me)u $a+!ritesE
Dis&lay t*e i)itial sree) >SAP 1asy Aess me)u?.
C*!!se ,avorites Insert transaction.
1)ter a tra)sati!) !'e i) t*e 'ial!5 b!6 .
0*e tra)sati!) !'e s*!rt te6t a&&ears u)'er t*e ,avorites )!'e. @!u a) start t*e a&&r!&riate
&r!5ram $r!m t*e !)te6t me)u $!r t*is )e% )!'e.
>C? SAP AG BC400 30
3.31
SAP AG 2001
8escribe the structure o$ the ->3 -epository and
its search tools
<se the 7b6ect #a"igator $or your de"elop%ent
&ork
#a%e and use the utilities $or orderly so$t&are
de"elop%ent
Create de"elop%ent classes0 ABAP progra%s0 and
transaction codes
Aou are no& able to:
4ntroduction to the ABAP Workbench:
<nit Su%%ary
>C? SAP AG BC400 3#
3.32ABAP or!"enc# E$ercises
1nt: 2ntroducton to the ABAP Workbench
Topc: +rgan/ng 3e$elopments
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create a 'e+el!&me)t lass
Assi5) *a)5es i) Re&!sit!ry !bGets t! a *a)5e reBuest
As a 'e+el!&er $!r a) airli)e 5r!u&- y!u are 5i+e) t*e tas( !$ 'e+el!&i)5
e+aluati!) &r!5rams $!r se+eral airli)e !m&a)ies.
0! 5r!u& t*e Re&!sit!ry !bGets t!5et*er l!5ially a)' tra)s&!rt t*em-
y!u must reate a 'e+el!&me)t lass.
;ser )ameE .ill be a))!u)e' by t*e i)strut!r.
De+el!&me)t lassE =C!""/>>
C*a)5e reBuestE .ill be a))!u)e' by t*e i)strut!r.
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
#:# 3!5 !) t! t*e !&erati)5 system a)' t*e) t! t*e s&ei$ie' SAP R/3 trai)i)5 system
usi)5 t*e user )ame t*e i)strut!r *as 5i+e) y!u. 1)ter a )e% &ers!)al &ass%!r'.
#:" Create t*e 'e+el!&me)t lass =C!""/>>. Assi5) it t! t*e *a)5e reBuest t*e
i)strut!r *as 5i+e) y!u.
#:3 9r!m )!% !)- assi5) all y!ur Re&!sit!ry !bGets i) t*e $!ll!%i)5 e6erises t! t*is
'e+el!&me)t lass a)' t*is *a)5e reBuest.
>C? SAP AG BC400 3"
("ercses
1nt: 2ntroducton to the ABAP Workbench
Topc: 3e$elopng ABAP Programs
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create- e'it- sa+e- a)' &r!ess ABAP &r!5rams
C*e( ABAP &r!5rams $!r !rret sy)ta6
0est a)' ati+ate ABAP &r!5rams
Create a) ABAP &r!5ram t*at lists a''iti!)al i)$!rmati!) !) all e6isti)5
$li5*t 'e&arture times.
Get t*e 'ata $r!m t*e 'atabase table SFLIGHT.
Pr!5ramE =C!""/>>/GS/LIST
M!'el s!luti!)E SAPBC400WBS_GS_LIST
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
":# Create t*e e6eutable &r!5ram =C!""/>>/GS/LIST
%it*!ut 0OP /)lu'e.
":" De$i)e a %!r( area $!r t*e 'ata retrie+al a)' 'ata 'is&lay >)ame su55esti!)E
.a/+l#(&t?E
DATA .a/+l#(&t TYPE s+l#(&t0
":3 Pr!5ram a l!!& aess t! all t*e 'ata re!r's i) t*e 'atabase table 0*4256TE
SELECT 2 FROM s+l#(&t
INTO .a/+l#(&t0
000
ENDSELECT0
":4 *or each data record- 'is&lay t*e !)te)ts !$ t*e $iel's $a%%#4- $onn#4-
+l4ate- seatso$$6 a)' seatsma? i) t*e listE
NE31LINE0 3RITE .a/+l#(&t1$a%%#40 3RITE 000
":5 C*e( y!ur &r!5ram $!r sy)ta6 err!rs- test it- a)' ati+ate it
>C? SAP AG BC400 33
("eercses
1nt: 2ntroducton to the ABAP Workbench
Topc: Transacton Codes
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Assi5) tra)sati!) !'es t! ABAP &r!5rams
A'' tra)sati!) !'es t! y!ur 9a+!rites list i) t*e SAP 1asy Aess
me)u
Gi+e y!ur $irst ABAP &r!5ram a tra)sati!) !'e- i) a''iti!) t! its
te*)ial )ame- %*i* y!u use t! e6eute it.
0ra)sati!) !'eE =C!""/>>/GS
Pr!5ramE =C!""/>>/GS/LIST
M!'el s!luti!)E SAPBC400WBS_GS LIST
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
3:# Create tra)sati!) !'e =C!""/>>/GS $!r t*e e6eutable &r!5ram
=C!""/>>/GS/LIST.
Initial obect/ pro'ram an! selection screen -report transaction)
16eute y!ur &r!5ram by e)teri)5 t*e )e% tra)sati!) !'e.
3:" /)lu'e t*e tra)sati!) !'e =C!""/>>/GS i) y!ur $a+!rites i) t*e SAP:1asy:
Aess:me)u.
16eute y!ur &r!5ram by '!uble:li(i)5 t*e )e% $a+!rite e)try.
9r!m )!% !)- it is best i$ y!u al%ays %!r( %it* t*e Object
Navigator. /t &r!+i'es y!u %it* a) !+er+ie% !$ all Re&!sit!ry
!bGets i) y!ur 'e+el!&me)t lass. 9r!m *ere- y!u a) e'it ea*
!bGet 'iretly by seleti)5 it $r!m t*is list.
>C? SAP AG BC400 34
3.33ABAP or!"enc# So%&tions
1nt: 2ntroducton to the ABAP Workbench
Topc: +rgan/ng 3e$elopments
# 9!ll!% t*e i)struti!)s as 5i+e) i) t*e )!tes a)' $i5ures !) &a5e 3:#8 a)' 3:#8-
Creati)5 De+el!&me)t Classes a)' Assi5)me)t t! a C*a)5e ReBuest.
1nt: 2ntroducton to the ABAP Workbench
Topc: 3e$elopng ABAP Programs
" )odel soluton:
REPORT sap,$!"".,s/(s/l#st0
DATA .a/+l#(&t TYPE s+l#(&t0
SELECT 2 FROM s+l#(&t
INTO .a/+l#(&t0
NE31LINE0
3RITE:
.a/+l#(&t1$a%%#46
.a/+l#(&t1$onn#46
.a/+l#(&t1+l4ate6
.a/+l#(&t1seatso$$6
.a/+l#(&t1seatsma?0
ENDSELECT0
1nt: 2ntroducton to the ABAP Workbench
Topc: Transacton Codes
3:# 9!ll!% t*e i)struti!)s as 5i+e) i) t*e )!tes a)' $i5ure !) &a5e 3:"8- Creati)5
0ra)sati!) C!'es.
3:" 9!ll!% t*e i)struti!)s as 5i+e) i) t*e )!tes t! t*e $i5ure- A''i)5 a 0ra)sati!)
C!'e t! t*e SAP 1asy Aess Me)u.
>C? SAP AG BC400 35
4
SAP AG 2001
SAP Flight 8ata (odel
Transparent Tables
Structures
<sing Transparent Tables and Structures in an ABAP
Progra%
Contents:
4ntroduction to the ABAP 8ictionary
>C? SAP AG BC400 #
4.2
SAP AG 2001
8escribe the SAP $light data %odel
8escribe the structure o$ a transparent table
8escribe the structure o$ a structure
2ist the possible uses o$ transparent tables and
structures in ABAP progra%s
At the conclusion o$ this unit0 you &ill be able to:
4ntroduction to the ABAP 8ictionary:
<nit 7b6ecti"es
>C? SAP AG BC400 "
4.3
SAP AG 2001
8ata (odeling
-eal &orld
8ata %odel
ABAP 8ictionary
-elational
database
/) t*e 'e+el!&me)t !$ busi)ess a&&liati!) s!$t%are- t*e real %!rl' must be &artly ma&&e' i)
t*e $!rm !$ 'ata. A) e)tity re&rese)ts a busi)ess u)it.
1)tities all relate t! ea* !t*er. 0*e e)tities a)' relati!)s*i&s are !)tai)e' i) t*e 'ata m!'el !r
e)tity relati!)s*i& m!'el >1RM?.
0*e !)+ersi!) !$ t*e table 'e$i)iti!)s a)' t*eir relati!)s*i&s i) t*e ABAP Diti!)ary are base'
!) t*is 'ata m!'el.
0*e atual a&&liati!) 'ata is &*ysially st!re' i) t*e 'atabase itsel$.
>C? SAP AG BC400 3
4.4
SAP AG 2001
8eparture airport
8estination airport
8estination city
8eparture city
Typical in5uiries at the tra"el agency:
Suitable airports
Suitable $light connections
Suitable $light ti%es
Additional $light in$or%ation such as: price0
a"ailability
Flight 8ata (odel $or ABAP Training Courses
ABAP trai)i)5 !urses- !)li)e '!ume)tati!)- a)' ABAP (ey%!r' '!ume)tati!) all use t*e
same $li5*t 'ata m!'el. All Re&!sit!ry !bGets i) t*e $li5*t 'ata m!'el are l!ate' i) t*e
'e+el!&me)t lass BC_DATAMODEL.
0*is trai)i)5 !urse 'em!)strates !)e sim&le e6er&t $r!m t*is 'ata m!'el- %*i* t*e i)strut!r
a) re$i)e i$ )eessary. /$ a &ers!) %a)ts t! tra+el $r!m !)e &lae t! a)!t*er- s*e as(s t*e tra+el
a5e)y t*e $!ll!%i)5 Buesti!)sE
.*at !))eti!) !$$ers me t*e best a)' m!st 'iret $li5*tK
At %*at times are $li5*ts !$$ere' !) t*e 'ate %*e) / %a)t t! tra+elK
<!% a) / !&timiCe t*e tra+el !)'iti!)s t! $i)' t*e best s!luti!)K .*at is t*e *ea&est
$li5*t- t*e $astest !))eti!)- t*e !))eti!) t*at 5ets me t*ere l!sest t! t*e time %*e) / %a)t
t! arri+eK
0*e &asse)5erFs +ie% 'i$$ers $r!m t*at !$ a tra+el a5e)y. /) t*e 'ata m!'el- %*i* is tail!re' t!
suit ma)a5eme)t !$ t*e )eessary 'ata- all 'ata is st!re'- !r5a)iCe' by te*)ial riteria- i)
tables !) a e)tral 'atabase. 0*e am!u)t !$ 'ata st!re' $ar e6ee's t*e 'ema)'s !$ t*e
&asse)5er.
As a &r!5rammer- y!u must be able t! !m&ile t*e 'ata i) &r!5rams t! suit t*e reBuireme)ts !$
t*e tra+el a5e)t.
>C? SAP AG BC400 4
4.5
SAP AG 2001
-elational 8ata (odel
B#AP/A?F/0 ,
Ti%etable
B#A#ARR04R ,
Airline
Flight
B#AB88>0?G ,
Flight booking
:
:
:
- - B#A#0,A0RP ,
City=airport
assign%ent
Airport
B#AG48#0,C ,
City
A A
B#A#3S,8' ,
Custo%er
B#A#83?,4R ,
Sales o$$ice
B#AA0RP8R, ,
B#A,RAD/AG ,
Tra"el agency
- C- C-
B#ASF/0GB, ,
0*e $li5*t 'ata m!'el !)tai)s e)tities $!r all busi)ess i)$!rmati!) t*at is l!5ially !))ete'- su*
asE
Cities
Air&!rts
Airli)es
9li5*ts
0*ese e)tities all relate t! ea* !t*er i) ertai) %aysE
1a* $li5*t s*e'ule !)tai)s e6atly !)e airli)e- !)e 'e&arture air&!rt- a)' !)e 'esti)ati!)
air&!rt.
B!!(able $li5*ts al%ays bel!)5 t! e6atly !)e e6isti)5 $li5*t s*e'ule ea*.
@!u a) assi5) ities t! )earby air&!rts.
@!u a) ma)a5e all )eessary 'ata %it*!ut re'u)'a)ies- usi)5 t*ese relati!)s*i&s. At t*e same time-
t*e tra+el a5e)y is able t! !btai) all 'ata reBueste' by t*e ust!mer.
>C? SAP AG BC400 5
4.6
SAP AG 2001
Con"erting <sing Transparent Tables
B#AP/A?F/0 ,
Ti%etable
B#A#ARR04R ,
Airline
B#ASF/0GB, ,
Flight
B#AB88>0?G ,
Flight booking
'A?D, #ARR0D #8??0D F/DA,4 B88>0D #3S,8'0D #83?,4R ...
SB77E SB77E
'A?D, #ARR0D #8??0D F/DA,4 S4A,S'AE S4A,S8## ...
SF24:T SF24:T
'A?D, #ARR0D #8??0D A0RPFR8' A0RP,8 D4P,0'4 ...
SPF24 SPF24
'A?D, #ARR0D #ARR?A'4 #3RR#8D4 3R/
SCA-- SCA--
:
:
:
A tra)s&are)t table !)tai)s 'i$$ere)t !lum)s- t! all!% y!u t! ma)a5e 'ata re!r's i) a struture'
%ay.
@!u 'e$i)e tra)s&are)t tables i) t*e ABAP Diti!)ary. /) t*is !)te6t- t*e table key is es&eially
si5)i$ia)t.
0*e table (ey !$ a table combnes (ey $iel's- %*i* are als! alle' prmary key felds.
0*e +alues i) t*e (ey $iel's all!% t*e system t! i'e)ti$y all 'ata re!r's un.uely.
9iel's t*at li)( t! !t*er tables are alle' foregn key felds. .it* t*ese $!rei5) (ey relati!)s*i&s y!u
a) ma)a5e t*e 'ata *ierar*ially a)' !)siste)tly.
>C? SAP AG BC400 6
4.7
SAP AG 2001
uses
uses
Table including data
Technical Structure o$ a Transparent Table
Transparent table Transparent table
8ata ele%ent
8o%ain
Field
@!u )!rmally use a 'ata eleme)t t! assi5) a ty&e t! a table $iel'.
Sema)ti &r!&erties- su* as $iel' labels- are st!re' i) t*e 'ata eleme)t.
@!u )!rmally use a '!mai) $!r t*e te*)ial &r!&erties. 0*e 'ata ty&e- am!)5 !t*er t*i)5s- is st!re'
i) t*e '!mai).
0*e ABAP Diti!)ary !)tai)s t*e &lat$!rm:i)'e&e)'e)t 'esri&ti!) !$ t*e rele+a)t 'atabase table.
0*e 'atabase table *as t*e same )ame as t*e tra)s&are)t table i) t*e ABAP Diti!)ary. 0*e $iel's
als! *a+e t*e same )ames i) b!t* t*e 'atabase a)' t*e ABAP Diti!)ary.
>C? SAP AG BC400 A
4.8
SAP AG 2001
Transparent Tables in the ABAP 8ictionary
Table 9dit oto <tilities 9n"iron%ent Syste% :elp
'ictionary( 'isp%ay Ta"%e
Transparent table SPFLI Active
Indexes
Attributes
9'tras
Short text Flight schedule
Currency/Quantity Fields Fields
Fields Key Field type Data type Length Dec places Short text
!A"DT S#!A"DT Client $or training
CA%%ID S#CA%%#ID Airline Carrier
CL"T & '

C(A% & '


C)""ID S#C)""#ID Flight connection "*!C & +
C)*"T%,F% LA"D#- Country .ey C(A% & '
CIT,F%)! S#F%)!#CIT City o$ departure C(A% & /&
AI%0F%)! S#F%)!AI%0 Airport o$ departure C(A% & '
C)*"T%,T) LA"D#- Country .ey C(A% & '
CIT,T) S#T)#CIT, Arrival city C(A% & /&

0*e felds ma(e u& t*e !lum)s !$ t*e tra)s&are)t table. A *e( mar( i) t*e 0ey !lum)
i)'iates t*at t*e !rres&!)'i)5 $iel' is a (ey $iel'.
@!u )!rmally assi5) a type t! a $iel' usi)5 a 'ata eleme)t >u)'er ,iel! type?. 0*e &hort te1t
st!re' %it* t*e 'ata eleme)t is liste' *ere. 0*e te*)ial attributes !$ t*e $iel' are liste' a5ai)
u)'er Data type- +en'th- a)' Dec) places. >A 'ata eleme)t )!rmally uses a '!mai).?
0*is is a logcal $e# !$ t*e table. /t is a &urely te*)ial 'esri&ti!). .*e) it is &*ysially
!)+erte'- t*e table is i) t*e database- %*ere y!u als! $i)' t*e table content !r t*e atual
a&&liati!) 'ata.
>C? SAP AG BC400 8
4.9
SAP AG 2001
Structures in the ABAP 8ictionary
Structure 9dit oto <tilities 9n"iron%ent Syste% :elp
'ictionary( 'isp%ay Str&ct&re
Structure SBC400FOCC Active
Attributes
9'tras
Short text Percentage Occupancy of Flights
1ntry help/chec. Co2ponents
Co2ponent Co2ponent type DTyp Length Dec places Short text
CA%%ID S#CA%%#ID Airline C(A% & '
C)""ID S#C)""#ID Flight connection "*!C & +
FLDAT1 S#DAT1 Flight date DATS & 3
S1ATS!A4 S#S1ATS!A4 !axi2u2 capacity I"T+ & -&
S1ATS)CC S#S1ATS!A4 )ccupied seats I"T+ & -&
01%C1"TA51 S#FL5(T)CC Flight )ccupancy D1C / 6
Currency/7uantity $ields
A $lat struture is 'e$i)e' i) alm!st t*e same %ay as a tra)s&are)t table- e6e&t t*at y!u a))!t
!)+ert $iel's t! (ey $iel's. 0*is %!ul' be &!i)tless $!r strutures. Strutures '! )!t re&rese)t a
'atabase table i) t*e ABAP Diti!)ary- but are a pure type defnton i)stea'.
.*e) 'e$i)i)5 a $lat struture- *!%e+er- %e re$er t! component a)' component type as !&&!se' t!
$iel' a)' $iel' ty&e- beause- i) !)trast t! tra)s&are)t tables- y!u a) 'e$i)e !m&le6 strutures.
0*is mea)s t*at- it is &!ssible t! st!re a struture !r substruture u)'er a !m&!)e)t )ame.
>C? SAP AG BC400 8
4.10
SAP AG 2001
<sing lobal Structures $or 8ata 7b6ects
DATA .a/+o$$ TYPE s,$!""+o$$0
TALES sp+l#0
PARAMETERS pa/$a%% TYPE sp+l#1$a%%#40
TYPE s,$!""+o$$ TYPE s,$!""+o$$
sp+l# sp+l#
TYPE sp+l#1$a%%#4 TYPE sp+l#1$a%%#4
;aA-occ
carr" sea!s*a2
2 : 4 ) 0
conn"
400
-la!e
200++23+
sea!socc
+ H 0
$ercen!a(e
4 0
s$-l"
carr" c"!&-ro*
A A #e& Aork
conn"
*4
coun!r&-r
<S
a"r$-ro*
IFE
*an!
4 0 0
...
!!!
coun!r&!o
<S
$aAcarr
2 :
A struture is use' t! e)trally &r!+i'e a 'ata type i) %*i* felds from dfferent tables are
compled.
/) t*e ABAP &r!5ram- y!u a) 'e$i)e 'ata ob,ects usi)5 t*e >Diti!)ary? struture.
A tra)s&are)t table merely re&rese)ts a te*)ial 'esri&ti!) i) t*e ABAP Diti!)ary. 0*ere$!re y!u
a) use it as a e)tral 'ata ty&e 'e$i)iti!)- as %it* a struture. 0*is mea)s t*at- similarly t! t*e 'ata
!bGet 'e$i)iti!)s liste' ab!+e- t*e $!ll!%i)5 +aria)ts are als! &!ssibleE
DATA .a/sp+l# TYPE sp+l# &r!+i'es a 'ata !bGet- ty&e' li(e t*e li)e i) t*e tra)s&are)t table
SPFLI.
TALES s,$!""+o$$ &r!+i'es a 'ata !bGet- ty&e' li(e t*e struture SBC400FOCC.
PARAMETERS pa/$a%% TYPE s,$!""+o$$1$a%%#4 &r!+i'es a) i)&ut $iel'- ty&e' li(e t*e
CARRID !m&!)e)t !$ t*e struture SBC400FOCC.
>C? SAP AG BC400 #0
4.11
SAP AG 2001
<sing lobal Structures $or 8ialogs
Short description o$ the
airline
,he -"el con!a"ns !he 0D o- !he a"rl"ne.
8ocu%entation
Per$or%ance Assistant
Airline
F+
Short description !!!
0D
AA
AB
A#
AF
4nput help
PARAMETERS pa/$a%%
TYPE sp+l#1$a%%#40
TALES sp+l#0
8ict>Progra% $ields
Screen Painter
A"rl"ne
A*er"can A"rl"nes
A"r Berl"n
A"r #anaa
A"r France
/$ y!u use a) eleme)tary struture t! 'e$i)e a) nput feld !) a seleti!) sree)- y!u a) use
sema)ti attributes !r te*)ial attributes. O) reBuest- t*e system aut!matially 5e)erates a
documentaton dalog a)' a) nput help dalog $!r t*e user. 0*e )eessary i)$!rmati!) $!r
t*is is ta(e) $r!m t*e ABAP Diti!)ary.
0*e same a&&lies t! $iel's !$ tra)s&are)t tables.
/$ y!u use a) eleme)tary struture !m&!)e)t t! assi5) a ty&e t! a) nput&output feld !) a
sree)- y!u a) use t*e same attributes as %it* seleti!) sree)s.
/$ y!u *a+e 'e$i)e' a $!rei5) (ey relati!)s*i&- t*e resulti)5 +alue !mbi)ati!)s a&&ear i) t*e
i)&ut *el& !) t*e sree). /$ a) err!r !urs- t*e system &r!esses a) aut!mati error dalog.
0*e same a&&lies t! $iel's !$ tra)s&are)t tables.
;se t*e TALES statement t! 'e$i)e t*e 'ata !bGet $!r t*e 'ata tra)s&!rt bet%ee) sree) a)'
&r!5ram.
>C? SAP AG BC400 ##
4.12
SAP AG 2001
8escribe the SAP $light data %odel
8escribe the structure o$ a transparent table
8escribe the structure o$ a structure
2ist the possible uses o$ transparent tables and
structures in ABAP progra%s
Aou are no& able to:
4ntroduction to the ABAP 8ictionary:
<nit Su%%ary
>C? SAP AG BC400 #"
4.13ABAP 'ictionary E$ercises
1nt: 2ntroducton to the ABAP 3ctonary
Topc: 1sng 5lobal 0tructures
for 3ata +b,ects and 3alogs
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
1stablis* t*e te*)ial )ames !$ 'ata ty&es a)' 'ata !bGets t*at are
use' i) user 'ial!5s.
Ru) %*ere:use' lists %it*i) a) ABAP &r!5ram.
@!u *a+e t! e6ami)e a s&ei$ie' ABAP &r!5ram t! see %*et*er 5l!bal
'ata ty&es are use' i) it- a)' i$ s!- %*i* !)es.
Pr!5ramE SAPBC400WBT_GETTING_STARTED
#:# O&e) t*e !bGet list $!r 'e+el!&me)t lass BC400. 9i)' t*e &r!5ram
SAPC!""3T/GETTING/STARTED- a)' !&e) its !bGet list. 0*r!u5*!ut t*e
e6erise- ma(e sure t*at y!u remai) i) dsplay mode.
#:" Ru) t*e &r!5ram t! $i)' !ut *!% it %!r(s.
#:3 0*ere is a) i)&ut $iel' !) t*e seleti!) sree).
#:3:# .*at i)$!rmati!) must y!u &ass t! t*e &r!5ramK
>;se L9#M $!r $iel' *el&.?
#:3:" .*at +alues a) y!u e)terK
>;se L94M $!r i)&ut *el&.?
#:3:3 .*at i)$!rmati!) '!es t*e &r!5ram &r!+i'eK
#:3:4 .*at is t*e te*)ial )ame !$ t*e i)&ut $iel'K
>;se t*e Technical information i) L9#M $iel' *el&.?
>C? SAP AG BC400 #3
#:4 0%! 'is&lay $iel's a&&ear !) t*e sree).
#:4:# 9i)' !ut t*e sree) )umber.
>C*!!se &ystem &tat$s.?
#:4:" .*at i)$!rmati!) is 'is&laye'K
>;se L9#M$iel' *el&.?
#:4:3 .*at are t*e te*)ial )ames !$ t*e 'is&lay $iel'sK D! t*e $iel's bel!)5 t! a
struture %it* a 5l!bally 'e$i)e' ty&eK
>;se t*e Technical information i) L9#M $iel' *el&.?
#:5 ;se t*e !bGet list t! a)alyCe t*e s!ure !'e !$ t*e &r!5ram.
#:5:# .*at 'ata !bGets are t*ereK .*ere are t*ey 'e$i)e' i) t*e &r!5ramK
#:5:" .*ere i) t*e &r!5ram are t*ey use'K
>;se t*e %*ere:use' list i) t*e ABAP 1'it!r.?
#:5:3 .*at 'ata !bGet !rres&!)'s t! t*e i)&ut $iel' !) t*e seleti!) sree)K
>Sear* t*e !bGet list $!r a 'ata !bGet %it* t*e same )ame as t*e $iel' t*at
y!u $!u)' i) ste& #:3:4.?
>C? SAP AG BC400 #4
4.14ABAP 'ictionary So%&tions
1nt: 2ntroducton to the ABAP 3ctonary
Topc: 1sng 5lobal 0tructures
for 3ata +b,ects and 3alogs
#:3 A)alyCi)5 by e6euti)5 a &r!5ramE
#:3:# @!u )ee' t! e)ter a) airli)e !'e.
#:3:" 0*e +alues &ermitte' *ere 'e&e)' !) t*e !)te)ts !$ 'atabase table SCARR.
#:3:3 0*e &r!5ram 'is&lays 'etaile' i)$!rmati!) !) t*e airli)e selete'. 0*is
i)$!rmati!) is $irst 'is&laye' !) a sree) a)' t*e) as a list.
#:3:4 0*e te*)ial )ame !$ t*e i)&ut $iel' is pa/$a%.
#:4 A)alyCi)5 by e6euti)5 a &r!5ramE
#:4:# 0*e sree) )umber is <"".
#:4:" 0*e system a5ai) 'is&lays t*e airli)e !'e a)' t*e urre)y !'e.
#:4:3 0*e !ut&ut $iel's are s,$!""/$a%%#e%1$a%%#4 a)'
s,$!""/$a%%#e%1$)%%$o4e. D!uble:li( i) t*e &tr$ct$re $iel' t! 5!
t! t*e ABAP Diti!)ary a)' a)alyCe t*e 5l!bal ty&e m!re l!sely.
#:5 A)alyCi)5 usi)5 t*e &r!5ramIs !bGet listE
#:5:# 0*e &r!5ram *as t*e strutures s,$!""/$a%%#e% a)' .a/s$a%% a)'
t*e eleme)tary 'ata !bGet pa/$a%.
#:5:" 0*e eleme)tary 'ata !bGet pa/$a% bel!)5s t! t*e i)&ut $iel'- %it* t*e
same )ame- !) t*e seleti!) sree).
>C? SAP AG BC400 #5
)
SAP AG 2001
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith 4nternal Tables
Contents:
Basic ABAP 2anguage 9le%ents
>C? SAP AG BC400 #
5.2
SAP AG 2001
8e$ine ele%entary and structured data ob6ects
<se basic ABAP state%ents
9'ecute and analy;e progra%s in debugging
%ode
At the conclusion o$ this unit0 you &ill be able to:
Basic ABAP 2anguage 9le%ents: <nit 7b6ecti"es
>C? SAP AG BC400 "
5.3
SAP AG 2001
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
Basic ABAP State%ents
<sing the ABAP 8ebugger
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith Structures
Working &ith 4nternal Tables
Working &ith 4nternal Tables
>C? SAP AG BC400 3
5.4
SAP AG 2001
<sing 8ata Types
ABAP progra%
Subroutine
7b6ect
(ethod
4nter$ace
4nter$ace
8ata types describe the attributes o$:
J 4nput > output $ields
J 8ata ob6ects
!!! 4nter$ace para%eters !!! 4nter$ace para%eters J 4nter$ace para%eters
0*e ty&e !$ a 'ata !bGet 'e$i)es its te*)ial attributes.
0*e ty&e !$ a) i)ter$ae &arameter 'e$i)es t*e ty&e !$ t*e +alues >atual &arameters? t*at are
tra)s$erre' %*e) t*e m!'ulariCati!) u)it is alle'.
/) a''iti!) t! t*e te*)ial attributes- t*e ty&e !$ a) i)&ut !r !ut&ut $iel' a) &r!+i'e $urt*er
i)$!rmati!)H $!r e6am&le- y!u a) use it t! !)tr!l t*e +alue !r i)&ut *el&.
>C? SAP AG BC400 4
5.5
SAP AG 2001
2ocal and lobal 8ata Types
ABAP progra%
Subroutine
7b6ect
(ethod
4nter$ace
4nter$ace
ABAP
8ictionary
2ocal data types: Technical
attributes only
Central data types: Technical and
se%antic attributes
@!u a) 'e$i)e 'ata ty&es i) a) ABAP &r!5ram >l!al- (ey%!r' TYPES? !r i) t*e ABAP Diti!)ary
>5l!bal?. ;si)5 5l!bal 'ata ty&es *as se+eral a'+a)ta5esE
Gl!bal ty&es are managed centrally a)' y!u a) use t*em i) all re&!sit!ry !bGets. 0*is i)reases
t*e !)siste)y !$ t*e system a)' si5)i$ia)tly re'ues t*e am!u)t !$ mai)te)a)e.
/) t*e ABAP Diti!)ary- y!u a) &er$!rm a) e)+ir!)me)t a)alysis >where2$se! list?.
Gl!bal 'ata ty&es a) be li)(e' t! busi)ess +ariables by !)te)t- a)' t*ere$!re !)tai) sema)ti a)'
te*)ial i)$!rmati!).
@!u a) use 5l!bal 'atat ty&es t! 'esi5) sree)s.
.*e) sear*i)5 $!r 5l!bal 'ata ty&es- ma(e sure y!u ta(e b!t* t*e te*)ial a)' sema)ti attributes
i)t! a!u)t. O)ly t*e) %ill y!u be able t! ma(e $ull use !$ t*e mai)te)a)e a)' r!bust)ess
a'+a)ta5es !$ y!ur &r!5ram.
>C? SAP AG BC400 5
5.6
SAP AG 2001
8e$ining 8ata 7b6ects
Prede$ined
ABAP types
?
2ocal types
#
+
st%#n(
?st%#n(
t
4
lobal
types
$
n
p
TYPES t'pe/name TYPE 000
DATA 4o/name TYPE t'pe/name0 DATA DATA
DATA 4o/name/ne. LI@E 4o/name0 DATA DATA
@!u a) use a &re'e$i)e' ABAP ty&e- a l!al- !r a 5l!bal ty&e t! ty&e a 'ata !bGet.
0*e $!ll!%i)5 &re'e$i)e' ABAP ty&es are !m&leteE
4 3ate >$!rmatE 7777))33?
t Time >$!rmatE 66))00?
# 2)te5er
+ *l!ati)5 &!i)t )umber
st%#n( 0tri)5 >!$ +ariable le)5t*?
?st%#n( Byte seBue)e >*e8a'eimal stri)5- !$ +ariable le)5t*?
@!u must 'e$i)e t*e le)5t* $!r t*ese &re'e$i)e' ty&esE
$ C*arater
n -umeri *arater
? Byte >*e8a'eimal?
p Pa(e' )umber >N bi)ary !'e' 'eimals?. @!u must e)ter t*e )umber !$ 'eimal
&laes.
9!r m!re i)$!rmati!) !) &re'e$i)e' ABAP ty&es- re$er t! t*e (ey%!r' '!ume)tati!) !) TYPES !r
DATA.
@!u a) use LIKE t! re$er t! t*e ty&e !$ a &re'e$i)e' 'ata !bGet.
>C? SAP AG BC400 6
5.7
SAP AG 2001
8e$ining 9le%entary 8ata 7b6ects
S/CARR/ID
8ata
ele%ent
TYPES t/pe%$enta(eABC TYPE p DECIMALS D0
DATA: n)m,e% TYPE # ;ALUE <E6
pe%$enta(e TYPE t/pe%$enta(e6
$a%%#4 TYPE s/$a%%/#46
$onn#4 TYPE s,$!""+o$$1$onn#40
nu*ber
$ercen!a(e
carr"
F
conn"
SC!""FOCC
Structure
1<
0*e &re'e$i)e' ABAP ty&es >4- t- #- +- st%#n(- a)' ?st%#n(? are !m&lete. 0*is mea)s
t*ey a) 'e$i)e a) eleme)tary 'ata !bGet !$ t*ese ty&es as $!ll!%sE
DATA do_name TYPE pede!"ned_ABAP_#$pe%
9!r t*e &re'e$i)e' ABAP ty&es $- n- p- a)' ?- y!u must 'e$i)e t*e le)5t*. 0*is mea)s y!u
s*!ul' $irst 'e$i)e a) eleme)tary ty&eE
TYPES #$pe_nameA&en'#(C TYPE pede!"ned_ABAP_#$pe0
@!u use it t! 'e$i)e t*e 'ata !bGetE
DATA do_name TYPE #$pe_name0
9!r ty&e p- y!u a) als! 'e$i)e t*e )umber !$ 'eimal &laes usi)5 t*e DECIMALS a''iti!).
@!u a) use t*e ;ALUE a''iti!) t! &re:assi5) t*e +alue !$ a) eleme)tary 'ata !bGet.
9!r !m&atibility reas!)s- y!u a) still !)strut 'ata !bGets i) t*e DATA stateme)t %it*!ut
$irst *a+i)5 t! 'e$i)e t*e ty&e l!ally i) t*e &r!5ram %it* a TYPES stateme)t.
/) t*e ase !$ i)!m&letely &re'e$i)e' ABAP ty&es- t*e system a''s sta)'ar' +alues t! ma(e u&
t*e missi)5 ty&e i)$!rmati!).
/$ t*ere is )! ty&e s&ei$iati!) at all- t*e system 'e$i)es a ty&e c 'ata !bGet %it* a le)5t* !$
!)e.9!r t*e sta)'ar' le)5t*s a)' $!r m!re i)$!rmati!)- re$er t! t*e (ey%!r' '!ume)tati!) $!r
TYPES a)' DATA.
0*e same sy)ta6 a&&lies t! 5l!bal ty&es as t! user:'e$i)e' ty&esE
DATA do_name TYPE '&o)a&_#$pe_name
>C? SAP AG BC400 A
5.8
SAP AG 2001
Fi'ed 8ata 7b6ects
2iteral: 2iteral:
Constant: Constant: Fi'ed data ob6ect &ith 48 code
Fi'ed data ob6ect &ithout 48 code
#u%eric literal:
Positi"e integers: +23
#egati"e integers: =+23
#u%eric literal: Type i or p #u%eric literal: Type i or p
Te't literal
Character string: KaBcd9K
8eci%al nu%bers: K+23!4)K
Floating point nu%bers: K+23!4)90+K
Te't literal: Type c Te't literal: Type c
CONSTANTS $onst/name TYPE t'pe/name ;ALUE F l#te%al G IS INITIAL H0 CONSTANTS CONSTANTS
@!u assi5) a +alue t! ea* $i6e' 'ata !bGet i) t*e s!ure !'e. 0*ere$!re- it a))!t be *a)5e'
at ru) time.
@!u a) use lterals t! tra)s$er $i6e' +alues t! ABAP stateme)ts. 0*ere are )umeri literals a)'
te6t literals. 0*e latter are al%ays e)l!se' i) i)+erte' !mmasE
@!u a) 'is&lay i)te5ers as numerc lterals >i) t*e ase !$ )e5ati+e )umbers- %it* a
&ree'i)5 si5)?. 0*e system t*e) ma&s t*em !)t! t*e 'ata ty&e - i$ t*ey are %it*i) t*e +alue
ra)5e !$ 4:byte i)te5ers. <i5*er )umeri literals are ma&&e' !)t! 'ata ty&e p.
@!u must 'is&lay all !t*er literals >su* as *arater sets- )umbers %it* 'eimal &laes-
$l!ati)5 &!i)t )umbers? as te"t lterals. 0*ey are ma&&e' !)t! 'ata ty&e $ a)' !)+erte' later-
i$ )eessary.
/$ y!u %a)t t! i)lu'e a) i)+erte' !mma i) a te6t literal- y!u must e)ter it t%ie.
@!u 'e$i)e !)sta)ts usi)5 t*e CONSTANTS stateme)t. 0*eir ty&e is 'e$i)e' similarly t! t*e
ty&e !$ a) eleme)tary 'ata !bGet %it* t*e DATA stateme)t. 0*e *AL+E a''iti!) is reBuire' $!r
!)sta)ts
%ecommendaton: A+!i' literals %*e) usi)5 stateme)ts. Create !)sta)ts i)stea'. 0*is si5)i$ia)tly
im&r!+es &r!5ram mai)te)a)e.
>C? SAP AG BC400 8
5.9
SAP AG 2001
Basic ABAP State%ents
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
Basic ABAP State%ents
<sing the ABAP 8ebugger
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith Structures
Working &ith 4nternal Tables
Working &ith 4nternal Tables
>C? SAP AG BC400 8
5.10
SAP AG 2001
?alue Assign%ents


ABAP runti%e syste%
MO;E $/I+ TO $a%%#4<0
$a%%#4D 7 $a%%#4<0
ADD < TO $o)nte%0
CLEAR: $a%%#4<6
$a%%#4D6
$o)nte%0
Ti%e
CONSTANTS $/I+ TYPE s/$a%%/#4 ;ALUE 98F90
DATA: $a%%#4< TYPE s/$a%%/#46
$a%%#4D TYPE s/$a%%/#4 ;ALUE 9LH96
$o)nte% TYPE #0
Progra% start Progra% start
8ata declarations
MO;E MO;E
CLEAR CLEAR
cA.- 1F
carr"1 carr"2
/B
coun!er
0
ABAP progra%
1F /B 0
1F 1F 0
1F 1F 1
0
.*e) a &r!5ram is starte'- t*e &r!5ram !)te6t is l!a'e' i)t! a st!ra5e area !$ t*e a&&liati!)
ser+er a)' ma'e a+ailable $!r all t*e 'ata !bGets.
1+ery eleme)tary 'ata !bGet is &reassi5)e' t*e ty&e:relate' i)itial +alue- e6e&t i$ y!u
&reassi5)e' a 'i$$ere)t +alue usi)5 t*e *AL+E a''iti!).
@!u a) use t*e MO*E stateme)t t! !&y t*e !)te)ts !$ 'ata !bGets. 0%! stateme)ts are
a+ailable $!r t*is &ur&!seE
MO*E ,o-.e TO #a'e#0
#a'e# 7 ,o-.e0
/$ t*e t%! 'ata !bGets *a+e 'i$$ere)t ty&es- t*e ty&e is aut!matially !)+erte' i$ t*ere is a
!)+ersi!) rule.
9!r 'etaile' i)$!rmati!) ab!ut !&yi)5 a)' t*e !)+ersi!) rules- re$er t! t*e (ey%!r'
'!ume)tati!) $!r t*e MO*E stateme)t.
0*e CLEAR stateme)t resets t*e !)te)ts !$ a 'ata !bGet t! t*e ty&e:relate' i)itial +alue. 9!r
'etaile' i)$!rmati!) ab!ut t*e i)itial +alues $!r a &artiular ty&e- re$er t! t*e (ey%!r'
'!ume)tati!) $!r t*e CLEAR stateme)t.
>C? SAP AG BC400 #0
5.11
SAP AG 2001
Calculations
COMPUTE pe%$enta(e 7 o$$ 2 <"" * ma?0
DATA: ma? TYPE s,$!""+o$$1seatsma?6
o$$ TYPE s,$!""+o$$1seatso$$6
pe%$enta(e TYPE s,$!""+o$$1pe%$enta(e0
8ata declarations
COMPUTE COMPUTE
The key&ord is optional:
pe%$enta(e 7 o$$ 2 <"" * ma?0
ABAP progra%
2 2 * *
/) ABAP y!u a) &r!5ram arthmetc e"pressons nested t! a)y 'e&t*. N!te t*at &are)t*eses a)'
!&erat!rs are (ey%!r's a)' must be se&arate' by at least !)e bla)( *arater.
0*e $!ll!%i)5 are +ali' !&erat!rsE
J A''iti!)
1 Subtrati!)
2 Multi&liati!)
* Di+isi!)
22 P!%er
DI; /)te5er 'i+isi!) %it*!ut remai)'er
MOD /)te5er 'i+isi!) %it* remai)'er
0*ere are se+eral $u)ti!)s $!r 'i$$ere)t 'ata ty&es i) t*e ABAP ru)time e)+ir!)me)t.
9!r e6am&le- t*e $!ll!%i)5 stateme)t retur)s t*e urre)t le)5t* !$ t*e !)te)ts !$ a *arater setE
len(t& 7 STRLENA $#t'+%om C0
.it* $u)ti!)s t*e !&e)i)5 &are)t*esis is &art !$ t*e /D. 0*e rest must a5ai) be se&arate' by at least
!)e s&ae.
/) 5e)eral- t*e usual al5ebrai rules a&&ly $!r t*e processng se.uenceE e6&ressi!)s i) &are)t*eses
!me $irst- t*e) &!%ers- t*e) multi&liati!)/'i+isi!)- a)' $i)ally a''iti!)/subtrati!).
9!r 'etaile' i)$!rmati!) ab!ut t*e a+ailable !&erati!)s a)' $u)ti!)s- re$er t! t*e (ey%!r'
'!ume)tati!) $!r COMP+TE..
>C? SAP AG BC400 ##
5.12
SAP AG 2001
CASE 4ata/o,-e$t/<0
3HEN 4ata/o,-e$t/D0
3HEN 4ata/o,-e$t/B OR 4ata/o,-e$t/!0
3HEN OTHERS0
ENDCASE0
State%ents
State%ents
State%ents
IF Klo(#$al/e?p%ess#onL0
ELSEIF Klo(#$al/e?p%ess#onL0
ELSE0
ENDIF0
State%ents
State%ents
State%ents
Conditional Branching
CASE CASE
3HEN 3HEN
3HEN 3HEN
3HEN OTHERS 3HEN OTHERS
ENDCASE ENDCASE
IF IF
ELSEIF ELSEIF
ELSE ELSE
ENDIF ENDIF
OR OR
/) ABAP y!u *a+e t%! %ays t! e6eute 'i$$ere)t seBue)es !$ stateme)ts- 'e&e)'i)5 !) ertai)
!)'iti!)s.
.it* t*e CASE1ENDCASE !)struti!) t*e riteri!) $!r t*e e6euti!) !$ a stateme)t bl!( is
t*e similarity !$ t*e 'ata !bGets. /$ )! !m&aris!) is suess$ul- t*e) t*e system e6eutes t*e
OTHERS bra)*- i$ it is a+ailable.
16e&t $!r t*e $irst 3HEN bra)*- all $urt*er a''iti!)s are !&ti!)al.
.it* t*e IF1ENDIF !)struti!)- y!u a) use a)y l!5ial e6&ressi!)s. /$ t*e !)'iti!) is met-
t*e system e6eutes t*e rele+a)t stateme)t seBue)e. /$ )! !m&aris!) is suess$ul- t*e) t*e
system e6eutes t*e OTHERS bra)*- i$ it is a+ailable. 16e&t $!r t*e $irst Buery- all $urt*er
bra)*es are !&ti!)al.
9!r b!t* !)struti!)s- t*e system e6eutes !)ly !)e stateme)t seBue)e a)' al%ays $!r t*e
frst $ald ase.
%ecommendatonE
/$- i) e+ery !)'iti!)- y!u *e( t*at a +ariable is eBual t! a 5i+e) +alue- use t*e CASE/
ENDCASE !)struti!). /t is learer a)' less ru)time i)te)si+e.
Outsi'e !$ l!!&s y!u a) als! use C0ECK i)stea' !$ IF. 0*is Buery sets t*e e6euti!) !$ all
stateme)ts up to the end of the current processng block u)'er !)e !)'iti!). /$ t*is is
u)suess$ul- t*e system !)ti)ues %it* t*e $irst stateme)t i) t*e )e6t &r!essi)5 bl!(.
>C? SAP AG BC400 #"
5.13
SAP AG 2001
2oops
DO F n TIMES H F000H0
ENDDO0
3HILE Klo(#$al/e?p%ess#onL0
END3HILE0
LOOP AT 000
ENDLOOP0
SELECT 000
ENDSELECT0
DO0
IF Ka,o%t/$on4#t#onL0
EXIT0
ENDIF0
ENDDO0
2oop counter:
sy=inde'
2oop counter:
s'1#n4e?
State%ents
State%ents
State%ents
State%ents
State%ents
/) ABAP t*ere are $!ur l!!& !)struti!)s- %*ereby LOOP1ENDLOOP a)' SELECT1
ENDSELECT re&rese)t s&eial ases. /) t*e DO a)' 3HILE l!!&s- t*e system st!res t*e )umber
!$ t*e urre)t l!!& &ass i) t*e ,$/"nde1 $iel'. /$ t*ese l!!&s are )este'- ,$/"nde1 !)tai)s
t*e )umber !$ t*e urre)t >t*at is- i))er? l!!&.
1ncondtonal&nde" controlled loops
0*e stateme)ts bet%ee) DO a)' ENDDO are e6eute' u)til t*e l!!& is le$t !+er !t*er stateme)ts.
@!u als! *a+e t*e !&ti!) !$ s&ei$yi)5 t*e ma6imum )umber !$ l!!& &assesH !t*er%ise- y!u
may 5et a) e)'less l!!&.
6eader controlled loops
0*e stateme)ts bet%ee) 3HILE a)' END3HILE are e6eute' !)ly i$ t*e !)'iti!)
2&o'".a&_e1pe,,"on3 *as bee) met.
@!u a) use t*e stateme)ts CHEC@ a)' EXIT $!r 'i$$ere)t e$$ets !) t*e %ay t*e l!!& is
&r!esse'. 9!r e6am&le- y!u a) !)strut a footer-controlled l!!&.
>C? SAP AG BC400 #3
5.14
SAP AG 2001
8ialog (essages
MESSAGE #nnnAme,,a'e_.&a,,C F 3ITH 45 F 46 H F 47 H F 44 H H0
Type
t
Beha"ior (essage appears in
s
#
.
e
a
?
Progra% continues &ithout
interruption
Progra% continues a$ter
interruption
Conte't dependent
Conte't dependent
Progra% aborted
-unti%e error MESSAGE/TYPE/X
is triggered
Status line in ne't screen
(odal dialog bo'
Status bar
Status bar
(odal dialog bo'
Short du%p
(eaning
Status %essage
4n$or%ation
Warning
9rror
Ter%ination
Short du%p
@!u a) use t*e MESSAGE stateme)t t! se)' 'ial!5 messa5es. @!u must s&ei$y t*e t*ree:'i5it
messa5e )umber a)' t*e messa5e lass.
9urt*erm!re- y!u a) use t*e 3ITH a''iti!) t! i)lu'e u& t! $!ur +alues. 0*e system- 'e&e)'i)5 !)
t*e messa5e te6t- i)serts t*ese +alues i)t! t*e messa5e te6t.
@!u !)tr!l t*e 'ial!5 be*a+i!r usi)5 t*e ty&e abbre+iati!) OtP. 0*ere are si6 'i$$ere)t ty&es !$
messa5eE
a Ab!rt 0*e &r!5ram is e)'e' a$ter a 'ial!5 b!6.
? 1"it 0*e &r!5ram e)'s i) a s*!rt 'um&.
e (rr!r Ru)time be*a+i!r is !)te6t 'e&e)'e)t.
. War)i)5 Ru)time be*a+i!r is !)te6t 'e&e)'e)t.
# 2)$!rmati!) 0*e &r!5ram !)ti)ues a$ter a 'ial!5 b!6.
s 0uess0*e messa5e a&&ears i) t*e status bar !) t*e subseBue)t sree).
9!r $urt*er i)$!rmati!) ab!ut t*e sy)tati alter)ati+es !$ t*e MESSAGE stateme)t- re$er t! t*e
(ey%!r' '!ume)tati!).
>C? SAP AG BC400 #4
5.15
SAP AG 2001
-unti%e Beha"ior o$ 8ialog (essages
9ditor :elp
ABAP 7"er"ie&
ABAP Ter%
ABAP #e&s
ABAP 8ocu and 9'a%ples
Bel$
i
ABAP 8ocu%entation and 9'a%ples
@
@
@
@
@
BC = ABAP Progra%%ing
ABAP 4ntroduction
ABAP Progra%%ing 2anguage
ABAP <ser 8ialogs
Screens
Selection Screens
2ists
(essages
Si%ple e'a%ple $or %essages
8e%onstration $or all %essage types
!!!
@
@
@
@
De&e)'i)5 !) t*e !)te6t i) %*i* t*ey a&&ear- s!me messa5e ty&es s*!% 'i$$ere)t 'ial!5
be*a+i!r.
@!u a) $i)' a &r!5ram $!r testi)5 t*e resulti)5 !&ti!)s i) t*e ABAP '!ume)tati!). 0! aess
t*ese e6am&le &r!5rams- *!!se %tilities *elp onABAP !oc) an! e1amples >i) t*e
$!ll!%i)5 'ial!5 b!6?
>C? SAP AG BC400 #5
5.16
SAP AG 2001
<sing the ABAP 8ebugger
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
Basic ABAP State%ents
<sing the ABAP 8ebugger
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith Structures
Working &ith 4nternal Tables
Working &ith 4nternal Tables
>C? SAP AG BC400 #6
5.17
SAP AG 2001
9'ecuting a Progra% in 8ebugging (ode
Progra%
DBC400C00CS
DBC400C00CS
REPORT sap,$!"".,t/(ett#n(/sta%te40
TALES s,$!""/$a%%#e%0
DATA .a/s$a%% TYPE s$a%%0
PARAMETERS pa/$a% TYPE s$a%%1$a%%#40
START1OF1SELECTION0
SELECT SINGLE 2 FROM s$a%%
INTO CORRESPONDING
3HERE $a%%#4 7 pa/$a%0
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s$a%% TO s,$!
CALL SCREEN <""0
MO;E1CORRESPONDING s,$!""/$a%%#e% T
3RITE:* .a/s$a%%1$a%%#46
.a/s$a%%1$a%%name6
9'ecute
8ebugging
<se the conte't %enu
7r:
Set a breakpoint and
e'ecute the progra%
@!u a) start a &r!5ram i) Debu55i)5 m!'e $r!m t*e ObGet Na+i5at!r- %it*!ut *a+i)5 t!
*a)5e t*e &r!5ram i) t%! %aysE
/) t*e )a+i5ati!) area- *!!se E1ec$te Deb$''in' $!r t*e selete' &r!5ram.
/) t*e e'iti)5 area- selet t*e 'esire' &r!5ram li)e a)' *!!se &et3!elete breakpoint.
0*e) start t*e &r!5ram by *!!si)5 E1ec$te Direct processin' >98?
>C? SAP AG BC400 #A
5.18
SAP AG 2001
S&itching to 8ebugging (ode at -unti%e
>h
Syste% :elp Syste% :elp
<tilities 8ebug screen
8ebug ABAP
9nter L>hM into the co%%and
$ield and then select N9nterO
7r:
Choose %enu Syste)
/$ y!u %a)t t! 'ebu5 !)ly ertai) &arts !$ a &r!5ram- start t*e &r!5ram $irst a)' t*e) s%it* t!
'ebu55i)5 m!'e be$!re a sree) *a)5e. @!u a) '! t*is i) t%! %aysE
C*!!se &ystem %tilities Deb$' ABAP !r Deb$' screen.
1)ter *& i) t*e !mma)' $iel' a)' selet Enter.
>C? SAP AG BC400 #8
5.19
SAP AG 2001
8ebugging (ode: Single Step and Field Contents
F"el ?a*e
@GGAF8R'S
1 4
9 F"el Dalue

SELECT SINGLE 2 FROM s$a%%


INTO CORRESPONDING FIELDS OF .a/s$a%%
3HERE $a%%#4 7 pa/$a%%0
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s$a%% TO s,$!""/$a%%#e%0
CALL SCREEN <""0
MO;E1CORRESPONDING s,$!""/$a%%#e% TO .a/s$a%%0
F"2e $o"n! ar"!h*e!"c
1% 30 9







E
SAP
Wa!ch$o"n!
ABAP 'e"&**er


chws chws
r
SC9S3BR# SC9,AB0E SC9DB#?, 0 0 1
8ouble=click the
data ob6ect
paCcarr 2:
Current state%ent
Single step
/) 'ebu55i)5 m!'e- y!u a) *!!se &in'le step t! e6eute t*e &r!5ram stateme)t by stateme)t.
@!u a) 'is&lay t*e !)te)ts !$ u& t! ei5*t 'ata !bGets. 1)ter t*e )ames i) t*e le$t i)&ut $iel' !r
'!uble:li( t*e )ame i) t*e 'is&laye' s!ure !'e.
>C? SAP AG BC400 #8
5.20
SAP AG 2001
8ebugging (ode: Breakpoints
Dar"an! 1 4
9
Dar"an!

SELECT SINGLE 2 FROM s$a%%


INTO CORRESPONDING FIELDS OF .a/s$a%%
3HERE $a%%#4 7 pa/$a%%0
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s$a%% TO s,$!""/$a%%#e%0
CALL SCREEN <""0
MO;E1CORRESPONDING s,$!""/$a%%#e% TO .a/s$a%%0
F"2e $o"n! ar"!h*e!"c
1% 30 9







E
SAP
Wa!ch$o"n!
ABAP 'e"&**er


chws chws

SC9S3BR# SC9,AB0E SC9DB#?, 0 0 1


Continue
0! set a brea(&!i)t- '!uble:li( i) $r!)t !$ a li)e !$ s!ure !'e.
0! set a brea(&!i)t $!r a s&ei$i ABAP stateme)t- *!!seE Breakpoint Breakpoint at
&tatement)
/$ y!u *!!se "ontin$e- t*e &r!5ram is e6eute' u& t! t*e )e6t brea(&!i)t.
/$ y!u &ave t*e brea(&!i)ts- t*ey remai) i)tat %*ile y!u are l!55e' !) t! t*e system.
.it* brea(&!i)ts- t*e ABAP .!r(be)* s%it*es t! 'ebu55i)5 m!'e !)ly $!r t*e 'e+el!&er
%*! set t*e brea(&!i)ts. All !t*er users a) e6eute t*e &r!5ram 'iretly !r set t*eir !%)
brea(&!i)ts
>C? SAP AG BC400 "0
5.21
SAP AG 2001
8ebugging (ode: Tracing 8ata Changes
Watchpoint
Create>Change Watchpoint
2ocal &atchpoint ,only in speci$ied progra%.
Progra%
Field na%e
-elational operator
Co%p! $ield>"alue
Co%parison $ield ,Co%parison "alue i$ not selected.
pa/$a%%
7
LH
+
2
3
!!!
+0
7- A#8
paCcarr
2: P
#o! 2ocal Progra% Field na%e Field 7perator Co%p! $ield>"alue
2ogical operator bet&een &atchpoints
Watchpoints
.at*&!i)ts are brea(&!i)ts t*at 'e&e)' !) t*e $iel' !)te)t. @!u a) reate t*e $!ll!%i)5 ty&es !$
%at*&!i)tsE
*eld name:
0*e &r!5ram is e6eute' u)til t*e !)te)t !$ t*e $iel' *as *a)5e'.
*eld name9 relatonal operator9 comparson $alue:
0*e &r!5ram is e6eute' u)til t*e !)te)t !$ t*e $iel' *as *a)5e' s! t*at t*e 'e$i)e' l!5ial
!)'iti!)- relati+e t! a +alue- is met.
*eld name9 relatonal operator9 comparson $alue:
0*e &r!5ram is e6eute' u)til t*e !)te)t !$ t*e $iel' *as *a)5e' s! t*at t*e 'e$i)e' l!5ial
!)'iti!)- relati+e t! t*e !)te)t !$ a $iel'- is met.
@!u a) set u& t! #0 %at*&!i)ts a)' li)( t*em usi)5 t*e l!5ial !&erat!rs AND !r OR.
>C? SAP AG BC400 "#
5.22
SAP AG 2001
Working &ith Structures
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
Basic ABAP State%ents
<sing the ABAP 8ebugger
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith Structures
Working &ith 4nternal Tables
Working &ith 4nternal Tables
>C? SAP AG BC400 ""
5.23
SAP AG 2001
8e$inition o$ Structures &ith lobal Types
DATA .a/+o$$ TYPE s,$!""+o$$0
TALES sp+l#0
DATA DATA
TALES TALES
;aA-occ
carr" sea!s*a2 conn" -la!e sea!socc $ercen!a(e
s$-l"
carr" c"!&-ro* conn" coun!r&-r a"r$-ro* *an! ... coun!r&!o
SC!""FOCC
Structure
SPFLI
Transparent
table
/) ABAP- y!u a) 'e$i)e struture' 'ata !bGets >sim&ly alle' strutures?. 0*is all!%s y!u t!
!mbi)e +alues t*at bel!)5 t!5et*er l!5ially i)t! !)e !bGet.
Strutures a) be )este'. 0*is mea)s t*at !m&!)e)ts a) !)sist !$ m!re strutures !r e+e) tables.
0*ere are t%! %ays t! 'e$i)e struturesE
9!r DATA ,#-._name TYPE ,#-._#$pe8 y!u a) use local or global #$pe,
,#-._#$pe.
TALES '&o)a&_,#-._#$pe 'e$i)es a struture t*at is te*)ially ma)a5e' i) a s&eial
mem!ry area. /t *as t*e same )ame as t*e 5l!bal struture- '&o)a&_,#-._#$pe.
9!r t*is +aria)t- t*e 5l!bal struture must be $lat- t*at is- all !m&!)e)ts must *a+e a)
eleme)tary ty&e. Si)e Release 4.0- TABLES strutures ser+e !)ly as i)ter$aes $!r sree)
$iel's..
>C? SAP AG BC400 "3
5.24
SAP AG 2001
8e$inition o$ Structures &ith 2ocal Types
TYPES: EGIN OF st/+l#(&t#n+o6
$a%%#4 TYPE s/$a%%/#46
$onn#4 TYPE s/$onn/#46
+l4ate TYPE s/4ate6
seatsma? TYPE s+l#(&t1seatsma?6
seatso$$ TYPE s+l#(&t1seatso$$6
pe%$enta(eABC TYPE p DECIMALS D6
END OF st/+l#(&t#n+o 0
DATA .a/+l#(&t#n+o TYPE st/+l#(&t#n+o0
EGIN OF EGIN OF
;aA-l"(h!"n-o
carr" sea!s*a2 conn" -la!e sea!socc $ercen!a(e
END OF END OF
@!u a) als! 'e$i)e struture ty&es l!ally usi)5 t*e TYPES stateme)t. 0*e !m&!)e)ts are
e)l!se' by t*e $!ll!%i)5 stateme)ts as s*!%) i) t*e 5ra&*iE
EGIN OF ,#-.#-e_#$pe_name0
000
END OF ,#-.#-e_#$pe_name0
1a* i)'i+i'ual !m&!)e)t a) i) tur) be assi5)e' a)y ty&e y!u %is*.
9!r m!re i)$!rmati!)- re$er t! t*e (ey%!r' '!ume)tati!) $!r TYPES.
@!u 'e$i)e t*e 'ata !bGet itsel$ i) t*e usual %ay.
9!r !m&atibility reas!)s- y!u a) als! 'iretly 'e$i)e a struture' 'ata !bGetE
DATA: EGIN OF ,#-.#-e_name
000
END OF ,#-.#-e_#$pe_name
>C? SAP AG BC400 "4
5.25
SAP AG 2001
Addressing Structure Co%ponents
DATA: .a/s$a%% TYPE s$a%%0
.a/s$a%% 1$a%%#4 7 9LH90
SELECT SINGLE 2 FROM s$a%%
INTO .a/s$a%%
3HERE $a%%#4 7 .a/s$a%% 1$a%%#40
3RITE:* .a/s$a%% 1$a%%#46
.a/s$a%% 1$a%%name6
.a/s$a%% 1)%l0
1 1
;aAscarr
*an! currcoe carr" carrna*e url
1 1
1 1
1 1
1 1
C!m&!)e)ts !$ a struture are al%ays a''resse' usi)5 a *y&*e)E
,#-.#-e_name1.omponen#_name%
9!r t*is reas!)- '! )!t use *y&*e)s i) )ames.
>C? SAP AG BC400 "5
5.26
SAP AG 2001
Copying Structure Co%ponents &ith the Sa%e #a%e
DATA: .a/s+l#(&t TYPE s+l#(&t6
.a/+o$$ TYPE s,$!""+o$$0
MO;E1CORRESPONDING .a/s+l#(&t TO .a/+o$$0 MO;E1CORRESPONDING MO;E1CORRESPONDING
;aA-occ
carr" sea!s*a2 conn" -la!e sea!socc $ercen!a(e
;aAs-l"(h!
carr" ... conn" -la!e sea!s*a2 *an! ... sea!socc
TO TO
0*e stateme)t MO;E1CORRESPONDING ,o-.e_,#-. TO #a'e#_,#-. !&ies t*e
!)te)ts !$ t*e struture ,o-.e_,#-. i)t! t*e struture #a'e#_,#-. !m&!)e)t by
!m&!)e)t. 0*e +alue assi5)me)t %!r(s !)ly i$ t*e !m&!)e)ts *a+e i'e)tial )ames.
All !t*er !m&!)e)ts remai) u)*a)5e'.
>C? SAP AG BC400 "6
5.27
SAP AG 2001
Structures in 8ebugging (ode
Dar"an!
'a"n $ro(ra*
Source coe o-

SELECT SINGLE 2 FROM s$a%%


INTO CORRESPONDING FIELDS OF .a/s$a%%
3HERE $a%%#4 7 pa/$a%%0
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s$a%% TO s,$!""/$a%%#e%0
CALL SCREEN <""0
MO;E1CORRESPONDING s,$!""/$a%%#e% TO .a/s$a%%0
F"2e $o"n! ar"!h*e!"c
9







E
SAP
Wa!ch$o"n!
ABAP 'e"&**er


chws chws
F"els
SC9S3BR# 0
&aCsbc400
#o! Co%ponent na%e Type 2ength Contents
+
2
3
4
)
*
1
H
(A#8T
CA--48
CA--#A(9
C<--C789
(A-E
<#A(9
<D94T
8AT9
C
C
C
C
C
C
T
8
3
3
20
)
+
+2
*
H
+00
AA
A%erican Airlines
<S8
000000
00000000
Structured $ield
2ength ,in bytes.
&aCsbc400
)H
8ouble=click the
data ob6ect
@!u a) trae t*e $iel' !)te)ts !$ a struture by e)teri)5 t*e )ame !$ t*e struture i) t*e le$t
!lum). D!uble:li( t*is e)try t! see t*e !m&!)e)t 'is&lay.
>C? SAP AG BC400 "A
5.28
SAP AG 2001
Working &ith 4nternal Tables
8ata Types and 8ata 7b6ects
8ata Types and 8ata 7b6ects
Basic ABAP State%ents
Basic ABAP State%ents
<sing the ABAP 8ebugger
<sing the ABAP 8ebugger
Working &ith Structures
Working &ith Structures
Working &ith 4nternal Tables
Working &ith 4nternal Tables
>C? SAP AG BC400 "8
5.29
SAP AG 2001
4nternal Tables


Table can be
e'tended dyna%ically
/)ter)al tables are 'ata !bGets t*at all!% y!u t! retai) se+eral 'ata re!r's %it* t*e same
struture i) mem!ry. /) &ri)i&le- t*e )umber !$ 'ata re!r's is u)limite'. /t is restrite' !)ly
by t*e a&aity limits !$ s&ei$i system i)stallati!)s.
0*e ABAP ru)time system 'y)amially ma)a5es t*e le)5t* !$ i)ter)al tables. 0*is elimi)ates
a)y %!r( !)er)i)5 %!r(i)5 mem!ry ma)a5eme)t.
0*e i)'i+i'ual 'ata re!r's i) a) i)ter)al table are ()!%) as table lnes !r table e)tries. 9!r
t*is reas!)- t*e i)'i+i'ual !m&!)e)ts i) a li)e are re$erre' t! as columns !$ t*e i)ter)al table.
0*e li)e ty&e !$ a) i)ter)al table a) be a)y ABAP 'ata ty&e- eleme)tary !r struture'- !r it a)
be a)!t*er i)ter)al table.
/)ter)al tables are a sim&le %ay !$ &r!essi)5 lar5e 'ata re!r's i) a struture' $!rm %it*i) a
&r!5ram. 0y&ial uses i)lu'eE
Q 0em&!rarily st!ri)5 'ata $r!m 'atabase tables $!r $uture &r!essi)5
Q Struturi)5 a)' $!rmatti)5 'ata $!r !ut&ut
Q 9!rmatti)5 'ata $!r use by !t*er ser+ies
>C? SAP AG BC400 "8
5.30
SAP AG 2001
Attributes o$ 4nternal Tables
AA 00+1 20)12
2: 0400 *0+*2
FF 000) +00000
4nde' access 4nde' access
2: 0400 10213
)
Eey access Eey access
<A 0001
2ine type 2ine type 2ine type
Eey de$inition Eey de$inition Eey de$inition
8ata access type 8ata access type 8ata access type
CA--48 C7##48 84STA#C9 CA--48 C7##48 84STA#C9
SF 0H** +0*2)
<A 0001 20)12
H H Co%ponents Co%ponents
H H Se5uence Se5uence
H H <ni5ue > non=uni5ue key <ni5ue > non=uni5ue key
2ine inde' 2ine inde'
)
4
3
2
+
*
0*e 'ata ty&e !$ a) i)ter)al table is !m&letely s&ei$ie' by t*e $!ll!%i)5 attributesE
4ne type
0*is is t*e s!ure !$ t*e attributes !$ t*e i)'i+i'ual !lum)s. @!u )!rmally s&ei$y a struture
ty&e but a)y 'ata ty&es are &!ssible.
:ey defnton
0*e (ey !lum)s a)' t*eir !r'er 'e$i)e t*e riteria by %*i* t*e tables are i'e)ti$ie'.
De&e)'i)5 !) t*e aess ty&e- t*e (ey a) be 'e$i)e' as un.ue !r non-un.ue. .it* u)iBue
(eys t*ere are )! multi&le e)tries %it* i'e)tial +alues i) t*e (ey.
3ata access type
.it* a key access R as %it* 'atabase tables R y!u aess usi)5 t*e $iel' !)te)ts.
("ampleE A rea' aess usi)5 t*e sear* term 9UA """E9 t! a) i)ter)al table %it* t*e u)iBue
(ey CARRID CONNID a)' t*e 'ata &iture' ab!+e retur)s e6atly !)e 'ata re!r'.
2nde" accessE ;)li(e 'atabase tables- %it* i)ter)al tables t*e system may )umber t*e li)es a)'
5i+e t*e li)e a) i)'e6. @!u a) use t*is i'e6 t! aess a s&ei$i table li)e.
("ampleE A rea' aess t! a 'ata re!r' %it* i)'e6 5 retur)s t*e $i$t* 'ata re!r' !$ t*e i)ter)al
table
>C? SAP AG BC400 30
5.31
SAP AG 2001
4nde' access
Eey access
<ni5ue > #7#= <#4F<9 <#4F<9 Q #7#=<#4F<9 <#4F<9
#on=<ni5ue Eey
Access <sing (ainly inde' (ainly keys Eeys only
BASB4D ,AB/4 BASB4D ,AB/4
S,A?DARD ,AB/4 S,A?DARD ,AB/4 S8R,4D ,AB/4 S8R,4D ,AB/4
Connection Bet&een Table Eind and Access Type
4nde' tables :ashed table
Table type
n
n
A)!t*er i)ter)al table attribute is t*e table type. /)ter)al tables a) be 'i+i'e' i)t! t*ree table ty&es
a!r'i)5 t! t*e res&eti+e aess ty&esE
Q .it* standard tables t*e li)e )umberi)5 is mai)tai)e' i)ter)ally. B!t* i)'e6 a)' (ey aesses
are &!ssible.
Q .it* sorted tables t*e 'ata re!r's are al%ays s!rte' a!r'i)5 t! (ey a)' sa+e'. <ere t!!- t*e
i)'e6 is mai)tai)e' i)ter)ally. B!t* i)'e6 a)' (ey aesses are &!ssible.
Q .it* hashed tables t*e 'ata re!r's are ma)a5e' !&timiCe' at ru) time. A u)iBue (ey is a
reBuireme)t. .it* *as*e' tables !)ly (ey aesses are &!ssible.
.*i* table ty&e y!u use i) ea* ase- 'e&e)'s !) *!% t*at tableIs e)tries are 5e)erally 5!i)5 t! be
aesse'E
Q 9!r i)'e6 aesses y!u s*!ul' )!rmally use sta)'ar' tables.
Q S!rte' tables are best $!r u)iBue (eys a)' $i6e' s!rti)5.
Q .it* *as*e' tables t*e ru)time !&timiCati!) is )!tieable !)ly i$ t*e aesses are !$ t*e rea'
ty&e %it* a u)iBue (ey.
0*is !urse 'eals %it* sta)'ar' tables !)ly. A&art $r!m a $e% s&eial ases- t*e sy)ta6 is dentcal
for all three table types.
>C? SAP AG BC400 3#
5.32
SAP AG 2001
8e$inition o$ 4nternal Tables &ith lobal Types
2ine type and access
Eey
Eey de$inition
Eey category
Eey co%ponents
2ine type
8ata access type
SBC400F7CC
Standard table
Eey co%ponents
#on=uni5ue
CA--48
C7##48
F28AT9
SC!""/T/SC!""FOCC SC!""/T/SC!""FOCC
Table type Table type
DATA #ta,/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$0 DATA DATA
"!abA-l"(h!"n-o
carr" sea!s*a2 conn" -la!e sea!socc $ercen!a(e
0able ty&es a) be 'e$i)e' l!ally i) a &r!5ram !r 5l!bally i) t*e ABAP Diti!)ary.
9!r DATA "#a)_name TYPE "#a)_#$pe y!u a) use local or global ty&es "#a)_#$pe.
9!r 'etaile' i)$!rmati!) !) t*e 'e$i)iti!) !$ 5l!bal table ty&es i) t*e ABAP Diti!)ary- re$er t! t*e
SAP 3ibrary u)'er Basis ABAP Workbench B"2ABAP Dictionary Types Table types.
>C? SAP AG BC400 3"
5.33
SAP AG 2001
8e$inition o$ 4nternal Tables &ith 2ocal Types
TYPES: tt/+l#(&t#n+o
TYPE STANDARD TALE OF s,$!""+o$$
3ITH NON1UNI8UE @EY $a%%#4 $onn#4 +l4ate0
DATA #ta,/+l#(&t#n+o TYPE tt/+l#(&t#n+o0
STANDARD TALE OF STANDARD TALE OF
"!abA-l"(h!"n-o
carr" sea!s*a2 conn" -la!e sea!socc $ercen!a(e
3ITH NON1UNI8UE @EY 3ITH NON1UNI8UE @EY
@!u a) als! 'e$i)e i)ter)al table ty&es l!ally usi)5 t*e TYPE stateme)t.
0*e table ty&e is s&ei$ie' bet%ee) TYPE a)' TABLE OF.
0*e li)e ty&e !mes a$ter TABLE OF.
0*e (ey $iel's are liste' a$ter t*e WIT0 a''iti!). N!te t*at t*e !r'er !$ t*e (ey $iel's &lays a
&art *ere.
9!r 'etaile' i)$!rmati!) ab!ut 'e$i)i)5 l!al table ty&es- re$er t! t*e (ey%!r' '!ume)tati!)
!) TYPES.
@!u 'e$i)e t*e 'ata !bGet itsel$ i) t*e usual %ay.
9!r !m&atibility reas!)s- y!u a) als! 'iretly 'e$i)e a) i)ter)al table as $!ll!%sE
DATA "#a)_name TYPE #a)&e_9"nd TALE OF ,#-._#$pe 3ITH 9e$_de!0
>C? SAP AG BC400 33
5.34
SAP AG 2001
7"er"ie&: Typing Structured 8ata 7b6ects
DATA .a TYPE sp+l#0
SELECT 000 FROM sp+l#
INTO .a 000
TALES s,$!""+o$$0
DATA .a TYPE
s,$!""+o$$0
DATA #t TYPE
s,$!""/t/s,$!""+o$$0
ABAP progra% ABAP 8ictionary 8atabase
SPFLI SPFLI
Transparent table Transparent table
,8escription.
SC!""FOCC SC!""FOCC
Structure Structure
SC!""FOCC SC!""FOCC
Structure Structure
SC!""/T/SC!""FOCC SC!""/T/SC!""FOCC
Table type Table type
AA +1 !!!
AA *4 !!!
!!! !!! !!!
2: 400 !!!
2: 402 !!!
AA +1 !!!
AA *4 !!!
!!! !!! !!!
2: 400 !!!
2: 402 !!!
SPF24
>C? SAP AG BC400 34
5.35
SAP AG 2001
7"er"ie&: Accessing Single -ecords
Append
4nsert
-ead
Change
8elete
APPEND .a TO #ta,0
INSERT .a INTO TALE #ta, K$on4#t#onL0
READ TALE #ta, INTO .a K$on4#t#onL0
MODIFY TALE #ta, FROM .a F K$on4#t#onL H0
DELETE #ta, K$on4#t#onL0
APPEND APPEND
INSERT INSERT
READ TALE READ TALE
MODIFY MODIFY
DELETE DELETE
0*e $!ll!%i)5 si)5le re!r' !&erati!)s are a+ailable $!r i)ter)al tablesE /) ea* ase .a
re&rese)ts a struture t*at must *a+e t*e same ty&e as t*e li)e ty&e !$ t*e i)ter)al table #ta,.
APPEND A&&e)'s t*e !)te)ts !$ a struture t! a) i)ter)al table. 0*is !&erati!) s*!ul'
be use' %it* sta)'ar' tables !)ly.
INSERT /)serts t*e !)te)ts !$ a struture i)t! a) i)ter)al table. /) a sta)'ar' table it is
a&&e)'e'- i) a s!rte' table it is i)serte' i) t*e ri5*t &lae- a)' i) a *as*e' table it is i)serte'
a!r'i)5 t! t*e *as* al5!rit*m.
READ C!&ies t*e !)te)ts !$ a li)e i) a) i)ter)al table t! a struture.
MODIFY O+er%rites a li)e i) a) i)ter)al table %it* t*e !)te)t !$ a struture.
DELETE Deletes a li)e !$ a) i)ter)al table.
COLLECT Aumulates t*e !)te)ts !$ a struture i)t! a) i)ter)al table. 0*is stateme)t
may be use' !)ly $!r tables %*!se )!):(ey $iel's are all )umeri. 0*e )umeri
+alues are summariCe' $!r i'e)tial (eys
9!r 'etaile' i)$!rmati!) ab!ut t*e ABAP stateme)ts 'esribe' *ere- re$er t! t*e rele+a)t
(ey%!r' '!ume)tati!).
>C? SAP AG BC400 35
5.36
SAP AG 2001
7"er"ie&: Processing Sets o$ -ecords
2oop: For all single
record operations
277P AT itab 4#T7 &a NconditionO!
9#8277P!!
DELETE #ta, K$on4#t#onL0
INSERT LINES OF #ta,D
K$on4#t#onDL
INTO #ta,< K$on4#t#on<L0
8elete
4nserting se"eral
lines $ro% another
internal table
LOOP LOOP
ENDLOOP ENDLOOP
DELETE DELETE
INSERT INSERT
Appending se"eral
lines $ro% another
internal table
INSERT LINES OF #ta,D
K$on4#t#on<L TO #ta,<0
APPEND APPEND
0*e $!ll!%i)5 set !&erati!)s are a+ailable $!r i)ter)al tablesE /) ea* ase .a re&rese)ts a
struture t*at must *a+e t*e same ty&e as t*e li)e ty&e !$ t*e i)ter)al table #ta,.
LOOP 000 ENDLOOP
0*e LOOP &laes t*e li)es !$ a) i)ter)al table !)e by !)e i)t! t*e struture s&ei$ie' i) t*e
INTO lause. All si)5le re!r' !&erati!)s a) be e6eute' %it*i) t*e l!!&. /) t*is ase- $!r t*e
si)5le re!r' !&erati!)s- t*e system i'e)ti$ies t*e li)e t! be &r!esse'.
DELETE
Deletes t*e li)es !$ t*e i)ter)al table t*at satis$y t*e !)'iti!) K$on4#t#onL.
INSERT
C!&ies t*e !)te)ts !$ se+eral li)es !$ a) i)ter)al table t! a)!t*er i)ter)al table.
APPEND
A&&e)'s t*e !)te)ts !$ se+eral li)es !$ a) i)ter)al table t! a)!t*er sta)'ar' table.
9!r 'etaile' i)$!rmati!) ab!ut t*e ABAP stateme)ts 'esribe' *ere- re$er t! t*e rele+a)t (ey%!r'
'!ume)tati!).
>C? SAP AG BC400 36
5.37
SAP AG 2001
Synta' 9'a%ple: Filling 2ine by 2ine
2 +#ll st%)$t)%e .#t& val)es:
.a/+l#(&t#n+o1$a%%#4 7 000 0
.a/+l#(&t#n+o1$onn#4 7 000 0
.a/+l#(&t#n+o1+l4ate 7 000 0
.a/+l#(&t#n+o1seatsma? 7 000 0
.a/+l#(&t#n+o1seatso$$ 7 000 0
.a/+l#(&t#n+o1pe%$enta(e 7 000 0
2 #nse%t st%)$t)%e #nto #nte%nal ta,le:
INSERT .a/+l#(&t#n+o INTO TALE #ta,/+l#(&t#n+o0
2 4e+#ne #nte%nal ta,le an4 .o%Ma%ea:
DATA: #ta,/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$6
.a/+l#(&t#n+o LI@E LINE OF #ta,/+l#(&t#n+o0
"!abA-l"(h!"n-o
;aA-l"(h!"n-o
@!u a) i)sert li)es i)t! a) i)ter)al table by $irst $illi)5 a struture %it* t*e reBuire' +alues a)' t*e)
i)serti)5 it i)t! t*e i)ter)al table usi)5 t*e INSERT stateme)t.
9!r sta)'ar' tables- t*is mea)s t*at t*e li)e is a&&e)'e' t! t*e table. 9!r s!rte' tables a)' *as*
tables- t*e system i)serts t*e li)e a$ter re$erri)5 t! t*e (ey.
>C? SAP AG BC400 3A
5.38
SAP AG 2001
Synta' 9'a%ple: -eading Contents <sing a 2oop
LOOP AT #ta,/+l#(&t#n+o INTO .a/+l#(&t#n+o0

3RITE: * .a/+l#(&t#n+o1$a%%#46
.a/+l#(&t#n+o1$onn#46
.a/+l#(&t#n+o1+l4ate6
.a/+l#(&t#n+o1seatsma?6
.a/+l#(&t#n+o1seatso$$6
.a/+l#(&t#n+o1pe%$enta(e6
9N90
ENDLOOP0
2 4e+#ne #nte%nal ta,le an4 .o%Ma%ea:
DATA: #ta,/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$6
.a/+l#(&t#n+o LI@E LINE OF #ta,/+l#(&t#n+o0
"!abA-l"(h!"n-o
;aA-l"(h!"n-o
@!u a) rea' a)' &r!ess t*e !)te)ts !$ a) i)ter)al table usi)5 a LOOP by aessi)5 t*e struture
!m&!)e)t %it*i) t*e l!!&.
/) t*is e6am&le- t*e WRITE stateme)t is use' t! reate a list $r!m t*e $iel' !)te)ts.
/$ y!u %a)t t! *a)5e t*e !)te)ts !$ t*e i)ter)al table- $irst *a)5e t*e +alue !$ t*e !m&!)e)ts
%it*i) t*e l!!& a)' t*e) !+er%rite t*e li)e !$ t*e i)ter)al table usi)5 t*e MODIFY stateme)t.
>C? SAP AG BC400 38
5.39
SAP AG 2001
Synta' 9'a%ple: -eading <sing the 4nde'
LOOP AT #ta,/+l#(&t#n+o INTO .a/+l#(&t#n+o
FROM < TO O0
3RITE: * .a/+l#(&t#n+o1$a%%#46
.a/+l#(&t#n+o1$onn#46
.a/+l#(&t#n+o1+l4ate6
.a/+l#(&t#n+o1seatsma?6
.a/+l#(&t#n+o1seatso$$6
.a/+l#(&t#n+o1pe%$enta(e6
9N90
ENDLOOP0
FROM < TO O FROM < TO O
READ TALE #ta,/+l#(&t#n+o INTO .a/+l#(&t#n+o
INDEX B0
3RITE: * .a/+l#(&t#n+o1$a%%#46
.a/+l#(&t#n+o1$onn#46
.a/+l#(&t#n+o1+l4ate6
.a/+l#(&t#n+o1seatsma?6
.a/+l#(&t#n+o1seatso$$6
.a/+l#(&t#n+o1pe%$enta(e6
9N90
INDEX B INDEX B
@!u a) restrit aess t! ertai) li)e )umbers usi)5 t*e INDE: a''iti!). @!u may &er$!rm
i)'e6 !&erati!)s !) i)'e6 tables !)lyH t*ere$!re- t*ese !&erati!)s are su&&!rte' $!r sta)'ar'
a)' s!rte' tables !)ly.
/) t*e $irst e6am&le- t*e system ru)s t*r!u5* !)ly t*e $irst $i+e li)es i) t*e i)ter)al table.
/) t*e se!)' e6am&le- t*e system rea's t*e t*ir' li)e !$ t*e i)ter)al table
>C? SAP AG BC400 38
5.40
SAP AG 2001
Synta' 9'a%ple: -eading <sing the Eey
LOOP AT #ta,/+l#(&t#n+o INTO .a/+l#(&t#n+o
3HERE $a%%#4 7 9LH90
3RITE: * .a/+l#(&t#n+o1$a%%#46
.a/+l#(&t#n+o1$onn#46
.a/+l#(&t#n+o1+l4ate6
.a/+l#(&t#n+o1seatsma?6
.a/+l#(&t#n+o1seatso$$6
.a/+l#(&t#n+o1pe%$enta(e6
9N90
ENDLOOP0
3HERE $a%%#4 7 9LH9 3HERE $a%%#4 7 9LH9
READ TALE #ta,/+l#(&t#n+o INTO .a/+l#(&t#n+o
3ITH TALE @EY $a%%#4 7 9LH9
$onn#4 7 9"!""9
+l4ate 7 s'14at)m0
IF s'1s),%$ 7 "0
3RITE: * .a/+l#(&t#n+o1seatsma?6
.a/+l#(&t#n+o1seatso$$6
.a/+l#(&t#n+o1pe%$enta(e6
9N90
ENDIF0
3ITH TALE @EY $a%%#4 7 9LH9 3ITH TALE @EY $a%%#4 7 9LH9
$onn#4 7 9"!""9 $onn#4 7 9"!""9
+l4ate 7 s'14at)m +l4ate 7 s'14at)m
.it* t*e 3HERE a''iti!) y!u a) restrit aess t! li)es %it* ertai) +alues. Sey !&erati!)s are
su&&!rte' $!r all table knds.
.it* a !m&letely s&ei$ie' (ey- (ey aesses t! s!rte' a)' *as*e' tables are 5e)erally less
ru)time i)te)si+e t*a) (ey aesses t! sta)'ar' tables.
/) t*e $irst e6am&le- t*e system ru)s t*r!u5* !)ly t*!se li)es i) %*i* t*e .a"d $iel' *as
t*e +alue I3<I.
>Per$!rma)e as&etE 0*e s!rte' table is m!st suite' t! t*is ty&e !$ &r!essi)5.?
0*e se!)' e6am&le s*!%s t*e sy)ta6 $!r rea'i)5 a li)e i) t*e i)ter)al table %it* a $ully
s&ei$ie' (ey. 0*e retur) !'e ,$/,-). is set t! Cer! i$ a !rres&!)'i)5 li)e is i) t*e i)ter)al
table.
>Per$!rma)e as&etE 0*e *as*e' table is m!st suite' t! t*is ty&e !$ si)5le re!r' aess i$ t*e
)umber !$ !)tai)e' 'ata re!r's is +ery *i5*.?
.it* si)5le re!r' aesses usi)5 a (ey- y!u must $ill all (ey $iel's usi)5 t*e WIT0 TALE
KEY a''iti!). /$ y!u %a)t t! 'e$i)e y!ur seleti!) riteria usi)5 a)y $iel' +alues >)!t t*e e)tire
table (ey?- y!u must use t*e 3ITH @EY a''iti!).
>C? SAP AG BC400 40
5.41
SAP AG 2001
7perations on the Whole 4nternal Table
Sort
8elete the entire
content o$ the
internal table
SORT #ta, K$on4#t#onsL0
REFRESH #ta,0 REFRESH REFRESH
SORT SORT
0*e $!ll!%i)5 !&erati!)s a$$et t*e #hole i)ter)al table.
SORT
@!u a) use t*is t! s!rt a)y )umber !$ !lum)s i) a sta)'ar' !r *as*e' table i) ase)'i)5 !r
'ese)'i)5 !r'er. @!u may %a)t t! ta(e ulture:s&ei$i s!rt rules i)t! a!u)t.
REFRESH
0*is 'eletes t*e e)tire !)te)ts !$ a) i)ter)al table. A &art !$ t*e &re+i!usly use' %!r(i)5
mem!ry remai)s a+ailable $!r $uture i)serti!)s.
FREE
0*is 'eletes t*e e)tire !)te)ts !$ t*e i)ter)al table a)' releases t*e &re+i!usly use' %!r(i)5
mem!ry.
CLEAR
;)li(e all !t*er 'ata !bGets- t*is stateme)t *as t*e same e$$et as t*e REFRES0 stateme)t !)
i)ter)al tables %it* )! *ea'er li)e.
>C? SAP AG BC400 4#
5.42
SAP AG 2001
Synta' 9'a%ple: Sorting a Standard Table
SORT #ta,/+l#(&t#n+o Y pe%$enta(e DESCENDING0
2 4e+#ne #nte%nal ta,le an4 .o%Ma%ea:
DATA: #ta,/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$6
.a/+l#(&t#n+o LI@E LINE OF #ta,/+l#(&t#n+o0
"!abA-l"(h!"n-o
;aA-l"(h!"n-o
Y Y DESCENDING DESCENDING
#a%e o$ colu%n,s.
by &hich to sort
Ascending
or
descending@
@!u a) s!rt sta)'ar' tables by a)y !lum)- sim&ly by e)teri)5 t*e !lum) )ame a$ter t*e Y
a''iti!) t! t*e SORT stateme)t.
SORT "#a) F ASCENDING G DESCENDING H
F Y !5 F ASCENDING G DESCENDING H
0%%
!n F ASCENDING G DESCENDING H H
F AS TEXT H
F STALE H0
S!rti)5 t*e i)ter)al table by t*e table (ey !r s&ei$ie' $iel' !r'erE .it*!ut a) a''iti!) t*e
system s!rts i) ase)'i)5 !r'er.
/$ y!u use t*e AS TEXT a''iti!)- t*e system %ill- %*ile s!rti)5 by *arater:ty&e $iel's- ta(e
t*e ulture:s&ei$i s!rt rule i)t! a!u)t.
+nly i$ y!u use t*e STALE a''iti!) %ill t*e relati+e !r'er !$ 'ata re!r's- %*i* are i'e)tial
i) t*e s!rt (ey- remai) i)tat 'uri)5 s!rti)5.
/) t*is e6am&le- t*e 'ata re!r's !$ t*e i)ter)al table are s!rte' i) 'ese)'i)5 !r'er by t*e
&ere)ta5e !u&a)y !$ $li5*ts.
9!r m!re 'etails- re$er t! t*e (ey%!r' '!ume)tati!) $!r SORT.
>C? SAP AG BC400 4"
5.43
SAP AG 2001
4nternal Tables in 8ebugging (ode
Dar"an!

LOOP AT #t/+l#(&t#n+o INTO .a/+l#(&t#n+o0


3RITE: * .a/+l#(&t#n+o1$a%%#46
.a/+l#(&t#n+o1$onn#46
F"2e $o"n! ar"!h*e!"c
1% 30 9







E
SAP
Wa!ch$o"n!
ABAP 'e"&**er


chws chws
,able
SC9S3BR# 0
itC$lightin$o
8ouble=click the
data ob6ect
+
2
3
4
)
*
1
H
AA
AA
AA
AA
2:
2:
2:
2:
4nternal table
itC$lightin$o Type STA#8A-8
CA--48
00+1
00+1
00+1
00+1
0400
0400
0400
0400
C7##48
20000)+2
20000124
20000H2H
2000+224
20000*2*
200001+)
2000+++3
2000+2+2
F28AT9
!!!
!!!
!!!
!!!
!!!
!!!
!!!
!!!
!!!
**
+20
)*0
410
240
+23
213
2H0
P9-C9#TA9
Table
@!u a) trae t*e li)e !)te)ts !$ a) i)ter)al table by e)teri)5 t*e )ame i) t*e le$t !lum). 0! see t*e
table 'is&lay- '!uble:li( t*is e)try.
>C? SAP AG BC400 43
5.44
SAP AG 2001
Co%parison: 4nternal Tables &ith>&ithout :eader 2ines
4nternal table
Work area
INSERT .a INTO #ta, INDEX n0
DELETE TALE #ta, FROM .a0
READ TALE #ta, INTO .a INDEX n0
3RITE .a1$a%%#40
INSERT #ta, INDEX n0
DELETE TALE #ta,0
READ TALE #ta, INDEX n0
3RITE #ta,1$a%%#40
4%plicit synta': 9'plicit synta':
itab itab
&a &a
4nternal table
:eader
itab itab
itab itab
INTO INTO
FROM FROM
INTO INTO
DATA #ta,
TYPE STANDARD TALE OF s$a%%
3ITH NON1UNI8UE @EY $a%%#40
DATA .a TYPE s$a%%0
DATA #ta,
TYPE STANDARD TALE OF s$a%%
3ITH NON1UNI8UE @EY $a%%#4
3ITH HEADER LINE0 3ITH HEADER LINE 3ITH HEADER LINE
@!u a) 'e$i)e i)ter)al tables %it* !r %it*!ut a *ea'er li)e >3ITH HEADER LINE a''iti!)?.
A) nternal table #th header lne !)sists !$ a %!r( area >t*e *ea'er li)e? a)' t*e atual table
b!'y. B!t* !bGets are a''resse' #th the same name. <!% t*is )ame is i)ter&rete' 'e&e)'s
!) t*e !)te6t. 9!r e6am&le- %it* MO*E t*e )ame re$ers t! t*e *ea'er li)e- %*ile %it* SEARC0
it is i)ter&rete' as t*e table b!'y.
0! a+!i' !)$usi!)- use nternal tables #thout header lnes. 0*is is es&eially a&&are)t i) t*e
ase !$ )este' tables.@!u a) !$te) use a s*!rte)e' sy)ta6 >APPEND8 INSERT8 MODIFY8
COLLECT8 DELETE8 READ8 LOOP AT? $!r ertai) !&erati!)s !) i)ter)al tables %it*
*ea'er li)e. .it*i) ABAP !bGets- y!u a) )!% !)ly use i)ter)al tables %it*!ut a *ea'er.
@!u a) al%ays u)iBuely a''ress t*e b!'y !$ a) i)ter)al table "#a) by usi)5 t*e sy)ta6
"#a)FH. 0*is is true re5ar'less !$ %*et*er t*e i)ter)al table *as a *ea'er !r )!t.
("ample:
DATA #ta,< TYPE TALE OF # 3ITH HEADER LINE0
DATA #ta,D LI@E #ta,<0
#ta,< 7 #ta,D0 ; !)ly t*e *ea'ers are !&ie'
#ta,<FH 7 #ta,DFH0 ; t*e atual table !)te)t is !&ie'
>C? SAP AG BC400 44
5.45
SAP AG 2001
8e$ine ele%entary and structured data ob6ects
<se basic ABAP state%ents
9'ecute and analy;e progra%s in debugging
%ode
Aou are no& able to:
Basic ABAP 2anguage 9le%ents: <nit Su%%ary
>C? SAP AG BC400 45
5.46ABAP +an*&a*e E%e)ents E$ercises
1nt: Basc ABAP 4anguage (lements
Topc: Basc ABAP 0tatements
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
De$i)e eleme)tary 'ata !bGets
Assi5) +alues
/m&leme)t !)'iti!)al bra)*i)5
Per$!rm alulati!)s
Create a) ABAP &r!5ram $!r t*e $!ur basi alulati!) ty&es. @!u must
be able t! e)ter t*e +alues a)' arit*meti !&erat!r !) a seleti!) sree).
Dis&lay t*e result i) a list.
Pr!5ramE =C!""/>>/COMPUTE
M!'el s!luti!)E SAPBC400TSS_COMP+TE
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
#:# Create t*e e6eutable &r!5ram =C!""/>>/COMPUTE
#thout D0OP /)lu'eD.
#:" De$i)e t*e i)&ut &arameters $!r t%! i)te5ers >)ame su55esti!)E pa/#nt<-
pa/#ntD? a)' a) arit*meti !&erat!r >)ame su55esti!)E pa/op?. A''iti!)ally-
'e$i)e a) eleme)tary 'ata !bGet $!r t*e result ty&eE &a(e' )umber %it* t%!
'eimal &laes >)ame su55esti!)E %es)lt?.
#:3 16eute t*e alulati!) i) !))eti!) %it* t*e s&ei$ie' arit*meti !&erat!r.
;se t*e CASE stateme)t t! '! t*is.
#:4 Dis&lay t*e result i) a list.
#:5 /$ t*e user *as s&ei$ie' a) i)+ali' arit*meti !&erat!r !) t*e seleti!) sree)- %rite
a) a&&r!&riate stateme)t !) t*e list sree)..
;se t*e IF stateme)t t! '! t*is.
>C? SAP AG BC400 46
#:6 /$ t*e user tries t! 'i+i'e by Cer!- 'is&lay a) a&&r!&riate stateme)t !) t*e list
sree).
/) a later u)it y!u %ill lear) *!% y!u a) im&leme)t t*e err!r
*a)'li)5 %it* a m!re ele5a)t user 'ial!5.
>C? SAP AG BC400 4A
("ercses
1nt: Basc ABAP 4anguage (lements
Topc: Workng #th 0tructures
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
;se t*e Debu55er t! trae t*e 'ata $l!% a)' u)'ersta)' t*e
!))eti!)s bet%ee) &r!essi)5 bl!(s.
;se t*e MO;E1CORRESPONDING stateme)t t! assi5) +alues bet%ee)
strutures.
@!u *a+e t! e6ami)e a s&ei$ie' ABAP &r!5ram t! asertai) %*e) a)'
*!% ertai) 'ata is tra)s&!rte' bet%ee) ertai) struture' 'ata !bGets.
Pr!5ramE SAPBC400WBS_GETTING_STARTED
":# Start t*e &r!5ram SAPC!""3S/GETTING/STARTED. O) t*e seleti!) sree)-
e)ter t*e airli)e !'e TLHF. /) t*e !mma)' $iel'- e)ter I*&I a)' t*e) e6eute t*e
&r!5ram. @!u are )!% i) 'ebu55i)5 m!'e.
":" Ma(e sure t*at all !$ t*e 'ata !bGets are i)itial. 0ra)s$er all !$ t*e 'ata !bGets
'e$i)e' i) t*e &r!5ram t! t*e $iel' +ie%. 9i)' !ut ab!ut t*e struture a)' ty&e !$ t*e
i)'i+i'ual !m&!)e)ts.
":3 Ste& t*r!u5* t*e &r!5ram- !)e stateme)t at a time- by *!!si)5 &in'le step >95?.
.*i* $iel's !$ t*e struture ;a_,.a '!es t*e SELECT stateme)t $illK .*at is
t*e +alue !$ system $iel' ,$/,-). a$ter t*e stateme)tK
":4 N!% !bser+e *!% $iel's are !&ie' $r!m t*e struture ;a_,.a t! t*e struture
,).400_.a"e. .*i* $iel' +alues are !&ie'K
":5 0*e stateme)t CALL SCREEN 500 &r!esses sree) #00. O) t*e sree)- e)ter
a&&r!&riate +alues $!r t*e user )ame- 'ate- a)' time- a)' !)ti)ue %it* t*e
&r!5ram. N!% !bser+e *!% $iel's are !&ie' $r!m t*e struture
,).400_.a"e t! t*e struture ;a_,.a.
":6 9i)ally- !bser+e *!% t*e WRITE stateme)t !)struts t*e list.
>C? SAP AG BC400 48
A$ter t*e $irst WRITE stateme)t- a) e6tra butt!) a&&ears i) t*e
a&&liati!) t!!lbar- %*i* all!%s y!u t! 'is&lay t*e urre)t !)te)ts
!$ t*e list bu$$er at a)y time.
":A Restart t*e &r!5ram i) Debu55i)5 m!'e. Set a brea(&!i)t at t*e MO*E/
CORRESPONDING stateme)t. Be$!re t*e sree) is &r!esse'- assi5) a )ame t! t*e
struture !m&!)e)t ,).400_.a"e/-name i) t*e Debu55er.
0*e butt!) use' t! *a)5e t*e $iel' +alues at ru)time is )e6t t! t*e
i)&ut/!ut&ut $iel'.
":8 Re&eat ste& ":#. N!% set a brea(&!i)t at t*e CALL SCREEN stateme)t.
A''iti!)ally- set a $iel' !)te)t:'e&e)'e)t %at*&!i)t $!r t*e !)'iti!) t*at a $iel'
+alue !$ t*e struture ;a_,.a *a)5es. C*!!se "ontin$e >98? t! !)ti)ue t*e
&r!5ram a)' *e( %*y t*e 'ebu55i)5 !$ t*e &r!5ram is st!&&e' i) ea* ase.
>C? SAP AG BC400 48
("ercses
1nt: Basc ABAP 4anguage (lements
Topc: Workng #th 2nternal Tables
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Sear* $!r suitable table (i)'s i) t*e ABAP Diti!)ary
De$i)e i)ter)al tables base' !) a 5l!bal table (i)'
9ill i)ter)al tables usi)5 array $et*
Pr!ess t*e !)te)t !$ i)ter)al tables usi)5 a l!!&.
Create a) ABAP &r!5ram t*at lists a''iti!)al i)$!rmati!) !) all e6isti)5
$li5*t 'e&arture times.
Get t*e 'ata $r!m t*e 'atabase table SPFLI.
Pr!5ramE =C!""/>>/ITA/LOOP
M!'el s!luti!)E SAPBC400TSS_ITAB_LOOP
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
3:# Create t*e e6eutable &r!5ram =C!""/>>/ITA/LOOP
#thout D0OP:/)lu'eD.
3:" Bu$$er t*e 'ata $r!m t*e 'atabase table SPFLI i) a) i)ter)al table. De$i)e a) i)ter)al
table %it* a li)e ty&e t*at is !m&atible %it* t*e li)e struture !$ SPFLI.
/) t*e ABAP Diti!)ary- sear* $!r all i)ter)al table (i)'s t*at mat* t*is !)'iti!).
>;se t*e Where2$se! list i) t*e ABAP 1'it!r.?
3:3 De$i)e a) i)ter)al table >)ame su55esti!)E #t/sp+l#? base' !) !)e !$ t*e 5l!bal
table ty&es y!u *a+e $!u)'.
3:4 De$i)e a %!r( area t*at !rres&!)'s t! t*e i)ter)al table >)ame su55esti!)E
.a/sp+l#?.
3:5 Pr!5ram a) array $et* aess t! all t*e 'ata re!r's i) t*e 'atabase table SPFLIE
SELECT 2 FROM sp+l#
INTO TALE #t/sp+l#0
3:6 Dis&lay t*e bu$$ere' 'ata i) a list.
>C? SAP AG BC400 50
;se t*e LOOP stateme)t t! '! t*is.
>C? SAP AG BC400 5#
5.47ABAP +an*&a*e E%e)ents So%&tions
1nt: Basc ABAP 4anguage (lements
Topc: Basc ABAP 0tatements
# )odel soluton:
REPORT sap,$!""tss/$omp)te0
PARAMETERS:
pa/#nt< TYPE #6
pa/opA<C TYPE $6
pa/#ntD TYPE #0
DATA %es)lt TYPE p DECIMALS D0
IF NOT A pa/op 7 9J9 OR
pa/op 7 919 OR
pa/op 7 929 OR
pa/op 7 9*9 C0
3RITE: 9Inval#4 ope%ato%:9A#opC0
ELSEIF pa/op 7 9*9 AND pa/#ntD 7 "0
3RITE: 9D#v#s#on ,' Pe%o:9A4,PC0
ELSE0
CASE pa/op0
3HEN 9J90
%es)lt 7 pa/#nt< J pa/#ntD0
3HEN 9190
%es)lt 7 pa/#nt< 1 pa/#ntD0
3HEN 9290
%es)lt 7 pa/#nt< 2 pa/#ntD0
3HEN 9*90
%es)lt 7 pa/#nt< * pa/#ntD0
ENDCASE0
3RITE: 9Res)lt:9A%esC6 %es)lt0
ENDIF0
>C? SAP AG BC400 5"
0olutons
1nt: Basc ABAP 4anguage (lements
Topc: Workng #th 0tructures
":3 .*i* !m&!)e)ts are $ille' by t*e SELECT stateme)t CK
man4t- $a%%#4- $a%%name- $)%%$o4e- )%l.
.*at is t*e +alue !$ t*e system $iel' ,$/,-). a$ter t*e SELECT stateme)tK
Beause t*ere is a 'ata re!r' $!r t*e airli)e 46 >3u$t*a)sa? i) t*e 'atabase table
SCARR- s'1s),%$ is set t! Cer!.
":4 .*i* $iel' +alues are !&ie'K
man4t- $a%%#4- $a%%name- $)%%$o4e.
>C? SAP AG BC400 53
0olutons
1nt: Basc ABAP 4anguage (lements
Topc: Workng #th 2nternal Tables
3 )odel soluton:
REPORT sap,$!""tss/#ta,/loop0
DATA: #t/sp+l# TYPE s,$!""/t/sp+l#0
DATA: .a/sp+l# TYPE sp+l#0
SELECT 2 FROM sp+l# INTO TALE #t/sp+l#0
< a# &ea,# one da#a,e# ,e&e.#ed
IF s'1s),%$ 7 "0
< mo4e ea.( ,"n'&e da#a,e# !om "n#ena& #a)&e #o
< ,#-.#-e WA_SPFLI "n ode #o ;"#e da#a on &",#
LOOP AT #t/sp+l# INTO .a/sp+l#0
3RITE: * .a/sp+l#1$a%%#46
.a/sp+l#1$onn#46
.a/sp+l#1$#t'+%om6
.a/sp+l#1$#t'to6
.a/sp+l#14ept#me6
.a/sp+l#1a%%t#me0
ENDLOOP0
ENDIF0
>C? SAP AG BC400 54
*
SAP AG 2001
8ata -etrie"al $or 8atabase Tables
Fuerying the 8atabase
-eading 8atabase Tables
Authori;ation Checks
Pre"ie&
Contents:
8ata -etrie"al
>C? SAP AG BC400 #
6.2
SAP AG 2001
2ist "arious &ays o$ $inding database tables
Progra% read access to speci$ic colu%ns and
lines &ithin a particular database table
4%ple%ent authori;ation checks
2ist the read access options $or %ultiple database
tables
At the conclusion o$ this unit0 you &ill be able to:
8ata -etrie"al: <nit 7b6ecti"es
>C? SAP AG BC400 "
6.3
SAP AG 2001


ABAP
Processing
block
ABAP runti%e syste%
ABAP progra%
Fuerying the 8atabase
8ata ob6ects
&aCscarr
8atabase
inter$ace
S929CT !!!
scarr
8atabase 8atabase SF2 SF2
8atabase 8atabase= =
speci$ic speci$ic
con"ersion con"ersion
paCcar
SCA--
SELECT SELECT
FROM FROM
7pen 7pen SF2 SF2
8atabase
table
+pen 0<4 stateme)ts are a subset !$ 0tandard 0<4 t*at is $ully i)te5rate' i) t*e ABAP
la)5ua5e. >S43 sta)'s $!r sta)'ar' Buery la)5ua5e.?
O&e) S43 stateme)ts all!% y!u t! aess t*e 'atabase i) a u)i$!rm %ay $r!m y!ur &r!5rams-
re5ar'less !$ t*e 'atabase system i)stalle'. 0*e 'atabase i)ter$ae !)+erts O&e) S43
stateme)ts t! 'atabase:s&ei$i S43 stateme)ts.
>C? SAP AG BC400 3
6.4
SAP AG 2001
Searching $or 8atabase Tables
Searching &ithin a particular application co%ponent:
Application hierarchy!
Searching using a progra% :
Search in the ABAP 9ditor $or the S929CT state%ent
Change to debugging %ode during progra% e'ecution and
set breakpoint in the S929CT state%ent
4$ the progra% trans%its a screen0 display the structure $ield
using F+ and technical in$or%ation or na"igate directly to the
data ele%ent ,double=click.0 or go directly to the data ele%ent
,by double=clicking it. and open the &here=used list in the
tables
@!u a) sear* $!r 'atabase tables +ia t*e A&&liati!) <ierar*y !r t*e Re&!sit!ry /)$!rmati!)
System)
/$ y!u *a+e t*e )ame !$ a &r!5ram t*at aesses t*e 'atabase table y!u are sear*i)5 $!rE
3ebugger:
Start t*is &r!5ram i) 'ebu55i)5 m!'e a)' set a breakpont at t*e SELECT statement.
ABAP (dtor:
Sear* $!r t*e SELECT stateme)t i) t*e s!ure te6t.
/$ y!u ()!% a &r!5ram t*at !)tai)s a sree) %it* i)&ut $iel's !))ete' t! t*e table y!u are
l!!(i)5 $!r- *!!se ,4 Technical info. D!uble:li( t*e te*)ial )ame !$ t*e sree) $iel' t!
5! t! t*e ABAP Diti!)ary. 0*is is !$te) a struture $iel'. D!uble:li( t*e data element a)'
t*e) use t*e %*ere:use' list t! sear* $!r tra)s&are)t tables %it* t*e $iel' ty&e
>C? SAP AG BC400 4
6.5
SAP AG 2001
-eading 8atabase Tables
-eading 8atabase Tables
-eading 8atabase Tables
Authori;ation Checks
Authori;ation Checks
Pre"ie&
Pre"ie&
>C? SAP AG BC400 5
6.6
SAP AG 2001
Which colu%ns@
Which table,s.@
Whereto Whereto@ @
Which lines@
S929CT NresultO F-7( NtableO
4#T7 NtargetO
W:9-9 NconditionO
Particular
colu%n
I
(ultiple lines
R
Single line
Progra%%ing 8atabase -ead Access
0! &r!5ram 'atabase rea' aess- use t*e O&e) S43 stateme)t SELECT.
0*e SELECT stateme)t !)tai)s a series !$ lauses- ea* !$ %*i* *as a 'i$$ere)t tas(E
0*e SELECT lause 'esribes- am!)5 !t*er t*i)5s- %*et*er t*e result !$ t*e seleti!)
%ill be se+eral li)es !r a si)5le 'ata re!r' a)' %*i* $iel's !$ t*e table are t! be rea'.
0*e FROM lause )ames t*e s!ure >'atabase table !r +ie%? $r!m %*i* t*e 'ata is t!
be selete'.
0*e INTO lause 'etermi)es t*e i)ter)al 'ata !bGets i)t! %*i* t*e selete' 'ata is t!
be &lae'.
0*e 3HERE lause s&ei$ies t*e !)'iti!)s t*at t*e seleti!) results must $ul$ill. /t t*us
'etermi)es t*e li)es t! be selete' $r!m t*e table.
9!r i)$!rmati!) ab!ut !t*er lauses- re$er t! t*e (ey%!r' '!ume)tati!) $!r SELECT.
>C? SAP AG BC400 6
6.7
SAP AG 2001
-eading by Single -ecord Access


paCcar
SELECT SINGLE 2
FROM s$a%%
INTO .a/s$a%%
3HERE $a%%#4 7 pa/$a%0
IF s'1s),%$ 7 "0
000
SINGLE SINGLE
8atabase
inter$ace
&aCscarr
INTO INTO
3HERE 3HERE
SCA--
8atabase
table
0*e SELECT SINGLE= stateme)t all!%s y!u t! rea' a sngle record $r!m t*e 'atabase table.
0! e)sure t*at y!u rea' a u)iBue e)try- all !$ t*e (ey $iel's must be $ille' by t*e 3HERE lause.
0*e asteris( J a$ter S/NG31 tells t*e 'atabase i)ter$ae t! rea' all !lum)s i) t*at li)e !$ t*e
'atabase table. /$ y!u %a)t !)ly a s&ei$i seleti!) !$ !lum)s- y!u a) list t*e reBuire' $iel's
i)stea'.
/) t*e INTO lause- e)ter t*e 'esti)ati!) %*ere t*e 'atabase i)ter$ae is t! !&y t*e 'ata. 0*e
tar5et area s*!ul' be struture' le$t Gusti$ie' Gust li(e t*e reBuire' !lum)s !$ t*e 'atabase table.
/$ y!u use t*e CORRESPONDING FIELDS OF a''iti!) i) t*e INTO lause- y!u a) $ill t*e
tar5et area !m&!)e)t by !m&!)e)t. 0*e system $ills !)ly t*!se !m&!)e)ts t*at *a+e
i'e)tial )ames t! !lum)s i) t*e 'atabase table. N!teE /$ y!u '! )!t use t*is a''iti!)- t*e
system $ills t*e tar5et area le$t Gusti$ie'- irres&eti+e !$ its struture.
/$ t*e system $i)'s a table e)try mat*i)5 y!ur !)'iti!)s- SY/S+BRC *as t*e +alue Cer! >0?.
0*e SINGLE a''iti!) tells t*e 'atabase t*at !)ly !)e li)e )ee's t! be rea'. 0*e 'atabase a)
t*e) termi)ate t*e sear* as s!!) as it *as $!u)' t*at li)e. 0*ere$!re- SELECT SINGLE
&r!'ues better &er$!rma)e $!r si)5le:re!r' aess t*a) a SELECT l!!& i$ y!u su&&ly +alues
$!r all (ey $iel's
>C? SAP AG BC400 A
6.8
SAP AG 2001
-eading Se"eral 2ines <sing a 2oop


paCcar
&aCsbc400$occ
8atabase
inter$ace
SELECT $a%%#4 $onn#4 +l4ate
seatso$$ seatsma?
FROM s+l#(&t
INTO .a/s,$!""+o$$
3HERE $a%%#4 7 pa/$a%0
ENDSELECT0
IF s'1s),%$ 7 "0
000
ENDSELECT ENDSELECT
SELECT SELECT
State%ents $or e"ery record read
SF24:T
8atabase
table
/$ y!u '! )!t use t*e a''iti!) SINGLE %it* t*e SELECT stateme)t- t*e system rea's multi&le
re!r's $r!m t*e 'atabase. 0*e $iel' list 'etermi)es t*e columns %*!se 'ata is t! be rea' $r!m
t*e 'atabase.
0*e )umber !$ reBueste' lnes t! be rea' a) be restrite' usi)5 t*e 3HERE lause.
/) t*e W0ERE lause y!u may e)ter only t*e feld names !$ t*e 'atabase table. 0*e )ame !$ t*e
'atabase table y!u %a)t t! aess is $!u)' i) t*e FROM lause.
Multi&le l!5ial !)'iti!)s a) be a''e' t! t*e W0ERE lause usi)5 AND9 NOT !r OR
stateme)ts.
0*e 'atabase 'eli+ers 'ata t! t*e 'atabase i)ter$ae i) &a(a5es. 0*e ABAP ru)time system
!&ies t*e 'ata re!r's t! t*e tar5et area li)e by li)e usi)5 a l!!&. /t als! e)ables seBue)tial
&r!essi)5 !$ all t*e stateme)ts bet%ee) SELECT a)' ENDSELECT.
A$ter t*e ENDSELECT stateme)t- y!u a) *e( t*e retur) !'e $!r t*e SELECT l!!&. sy-
subrc %ill *a+e t*e +alue Cer! >0? i$ t*e 'atabase i)ter$ae *as $!u)' at least !)e re!r'.
A$ter t*e ENDSELECT stateme)t- s'14,$nt !)tai)s t*e t!tal )umber !$ li)es rea'.
>C? SAP AG BC400 8
6.9
SAP AG 2001
-eading Se"eral 2ines <sing an Array Fetch
paCcar
itabC$occ
8atabase
inter$ace
SELECT $a%%#4 $onn#4 +l4ate
seatsma? seatso$$
FROM s+l#(&t
INTO TALE #ta,/+o$$
3HERE $a%%#4 7 pa/$a%0
IF s'1s),%$ 7 "0
000
TALE TALE


SF24:T
8atabase
table
0*e a''iti!) INTO TALE #ta, auses t*e ABAP ru)time system t! !&y t*e !)te)ts !$ t*e
'atabase i)ter$ae 'iretly t! t*e i)ter)al table #ta,. 0*is is alle' a) array fetch%
Si)e t*e array $et* is )!t e6eute' as a l!!&- '! )!t &r!5ram a)y ENDSELECT stateme)t.
/$ y!u %a)t t! a'' li)es t! t*e e)' !$ a) i)ter)al table t*at is alrea'y $ille'- i)stea' !$ !+er%riti)5 it-
use t*e APPENDING TALE #ta, a''iti!).
s'1s),%$ *as t*e +alue 0 i$ t*e system %as able t! rea' at least !)e re!r'.
>C? SAP AG BC400 8
6.10
SAP AG 2001
ABAP progra%
DATA .a/s,$!""+o$$ TYPE s,$!""+o$$0
SELECT SINGLE $a%%#4 $onn#4 +l4ate seatsma? seatso$$
FROM s+l#(&t
INTO .a/s,$!""+o$$
3HERE $a%%#4 7 pa/$a%
AND $onn#4 7 pa/$on
AND +l4ate 7 pa/4ate0
4#T7 Clause: Target Structure Suitable $or
Field 2ist
Sa%e type as
colu%n read
INTO INTO .a .a/s,$!""+o$$ /s,$!""+o$$
$a%%#4 $onn#4 +l4ate seatsma? seatso$$ $a%%#4 $onn#4 +l4ate seatsma? seatso$$
&aCsbc400$occ
0*e &r!5ram must !)tai) a 'ata !bGet %it* a suitable ty&e $!r ea* !lum) t*at is reBuire'
$r!m a 'atabase table. 9!r &r!5ram mai)te)a)e reas!)s- y!u must use t*e !rres&!)'i)5
Diti!)ary !bGets t! assi5) ty&es t! t*e 'ata !bGets. 0*e INTO lause s&ei$ies t*e 'ata !bGet
i)t! %*i* y!u %a)t t! &lae t*e 'ata $r!m t*e 'atabase table. @!u a) use t*e INTO lause i)
t%! 'i$$ere)t %aysE
1sng a flat structure R @!u 'e$i)e a struture i) y!ur &r!5ram t*at *as t*e same $iel's i) t*e
same seBue)e as t*e $iel' list i) t*e SELECT lause. @!u a) e)ter t*e )ame !$ t*e struture i)
t*e INTO lause. 0*e !)te)ts are !&ie' le$t Gusti$ie'. 0*e $iel' )ames !$ t*e struture are
'isre5ar'e' *ere.
1sng nd$dual data ob,ects R@!u a) e)ter a set !$ 'ata !bGets i) t*e INTO lause. 9!r
e6am&leE
DATA= 'd_.a"d TYPE ,!&"'(#/.a"d8
'd_.onn"d TYPE ,!&"'(#/.onn"d8
'd_!&da#e TYPE ,!&"'(#/!&da#e8
'd_,ea#,ma1 TYPE ,!&"'(#/,ea#,ma18
'd_,ea#,o.. TYPE ,!&"'(#/,ea#,o..%
START/OF/SELECTION%
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o..
FROM ,!&"'(#
INTO A(4/$a%%#46 (4/$onn#46 (4/+l4ate6 (4/seatsma?6
(4/seatso$$C
W0ERE %%%
>C? SAP AG BC400 #0
6.11
SAP AG 2001
4#T7 Clause: Sa%e=#a%e Fields o$ Field 2ist in the
Target Structure
ABAP progra%
DATA .a/s4'n/$onn TYPE s4'n/$onn0
SELECT SINGLE $a%%#4 $onn#4 4ept#me
FROM sp+l#
INTO CORRESPONDING FIELDS OF .a/s4'n/$onn
3HERE $a%%#4 7 pa/$a%
AND $onn#4 7 pa/$on0
(A#8T CA--48 C7##48 !!! 89PT4(9
%andt carrid connid !!! depti%e
INTO CORRESPONDING FIELDS OF INTO CORRESPONDING FIELDS OF .a .a/ /s4'n s4'n/ /$onn $onn
$a%%#4 $onn#4 4ept#me $a%%#4 $onn#4 4ept#me
Sa%e type as
colu%n read
/$ y!u use t*e INTO CORRESPONDING FIELDS lause- t*e 'ata is &lae' i) t*e $iel's %it* t*e
same )ame i) t*e tar5et struture.
A'+a)ta5es !$ t*is !)struti!)E
0*e tar5et struture '!es )!t *a+e t! be struture' le$t Gusti$ie' i) t*e i'e)tial %ay as t*e $iel' list.
0*is !)struti!) is easy t! mai)tai)- beause e6te)'i)5 t*e $iel' list '!es )!t reBuire !t*er
*a)5es t! t*e &r!5ram- as l!)5 as t*ere is a $iel' i) t*e tar5et struture t*at *as t*e same )ame
a)' ty&e.
0! &lae 'ata i) i)ter)al table !lum)s !$ t*e same )ame usi)5 a) array $et*- use t*e INTO
CORRESPONDING FIELDS OF TALE #ta, stateme)t.
>C? SAP AG BC400 ##
6.12
SAP AG 2001
Selecting 8ata Fro% Client=Speci$ic Tables
#ARR0D #0,CFR8'
AA
AA
...
...
AA
AA
...
...
AA
AA

?4W C8R>
FRA?>F3R,
...
...
?4W C8R>
FRA?>F3R,
...
...
?4W C8R>
FRA?>F3R,
Transparent table SPF24
#8??0D
001<
0064
...
...
001<
0064
...
...
001<
0064

'A?D,
400
400
...
...
401
401
...
...
402
402

SELECT 2 FROM sp+l#
INTO 000
3HERE $a%%#4 7 9AA90
000
ENDSELECT0
SELECT 2 FROM sp+l#
CLIENT SPECIFIED
INTO 000
3HERE man4t IN A!"<6 !"DC
AND $a%%#4 E8 9AA90
000
ENDSELECT0
2ogged on in client 400:
CLIENT SPECIFIED CLIENT SPECIFIED
man4t man4t
.it* lie)t:s&ei$i 'atabase tables- t*e $irst (ey%!r' must al%ays be MAND0 !r lie)t >'ata ty&e
C3N0?.
/$ y!u selet 'ata $r!m lie)t:s&ei$i tables- t*e system al#ays rea's t*e 'ata re!r's !$ t*e logon
clent- u)less !t*er%ise s&ei$ie'. >0*e ABAP ru)time system aut!matially !)+erts t*e SELECT
stateme)t.?
/$ y!u %is* t! e6&liitly i)lu'e t*e lie)t $iel' i) t*e W0ERE lause- y!u must set t*e CLIENT
SPECIFIED a''iti!) a$ter t*e FROM lause.
Si)e t*is s&eial ase is )!t rele+a)t $!r t*is !urse- t*e lie)t $iel' is 5e)erally !mitte' $r!m t*e
5ra&*is.
>C? SAP AG BC400 #"
6.13
SAP AG 2001
#ARR0D #0,CFR8' #0,C,8
AA
AA
...
...
/B
/B
...
...
3A
3A
...
?4W C8R>
FRA?>F3R,
...
...
FRA?>F3R,
FRA?>F3R,
...
...
FRA?>F3R,
SA? FRA?#0S#8
...
Transparent table SPF24
Per$or%ance: Secondary 4nde'
#8??0D
001<
0064
...
...
0400
0402
...
...
0941
3%04
...
SA? FRA?#0S#8
?4W C8R>
...
...
?4W C8R>
?4W C8R>
...
...
SA? FRA?#0S#8
FRA?>F3R,
...
000
SELECT 2 FROM sp+l#
INTO 000
3HERE $#t'+%om 7 9FRAN@FURT90
000
#0,CFR8'
Secondary inde'
B4R/0?
B4R/0?
...
FRA?>F3R,
FRA?>F3R,
FRA?>F3R,
FRA?>F3R,
...
?4W C8R>
?4W C8R>
...
.*e) y!u 5! t! t*e 'e$i)iti!) !$ a 'atabase table i) t*e ABAP Diti!)ary- y!u %ill see
i)$!rmati!) !) all t*e te*)ial attributes !$ t*e 'atabase table.
0*e $!ll!%i)5 i)$!rmati!) is use$ul $!r im&r!+i)5 t*e &er$!rma)e !$ 'atabase aessesE
:ey felds R /$ t*e li)es reBueste' $r!m t*e 'atabase are retrie+e' a!r'i)5 t! (ey $iel's- t*e
Database O&timiCer a) &er$!rm aess usi)5 a &rimary i)'e6.
0econdary nde" R /$ t*e li)es reBueste' $r!m t*e 'atabase are retrie+e' a!r'i)5 t! $iel's- t*e
Database O&timiCer a) &er$!rm aess usi)5 a se!)'ary i)'e6. Se!)'ary i)'e6es are
'is&laye' i) a 'ial!5 b!6 %*e)e+er y!u selet In!e1es. @!u *!!se a) i)'e6 $r!m t*e 'ial!5
b!6 by '!uble:li(i)5 it. 0*e system t*e) 'is&lays a sree) %it* a''iti!)al i)$!rmati!) ab!ut
t*at i)'e6.
>C? SAP AG BC400 #3
6.14
SAP AG 2001
Authori;ation Checks
-eading 8atabase Tables
-eading 8atabase Tables
Authori;ation Checks
Authori;ation Checks
Pre"ie&
Pre"ie&
>C? SAP AG BC400 #4
6.15
SAP AG 2001
Authori;ation Checks in ABAP Progra%s


AUTHORITY
CHEC@
,es
-o
SELECT
<ser %aster
records
BC400=00
Pro$ile +
Pro$ile 2
Pro$ile SCCA--48
Pro$ile 4
Authori;ation $or
authori;ation
ob6ect SCCA--48
Authori;ation $or
authori;ation
ob6ect SCCA--48
Authori;ation $or
authori;ation
ob6ect SCTC789
SY1SURC
7 "
Q
Selection
screen
#ote
@!u s*!ul' &r!5ram a) aut*!riCati!) *e( be$!re aessi)5 t*e 'atabase. 0*e AUTHORITY1
CHEC@ stateme)t $irst *e(s %*et*er t*e user *as t*e aut*!riCati!) !)tai)i)5 all t*e reBuire'
+alues. A$ter t*e aut*!riCati!) *e( is !m&lete'- *e( t*e retur) !'e. /$ it is 0- t*e user *as
t*e reBuire' aut*!riCati!) a)' t*e &r!5ram a) be !)ti)ue'. /$ t*e +alue is )!t 0- t*e user '!es
)!t *a+e t*e reBuire' aut*!riCati!) a)' y!u s*!ul' issue a) a&&r!&riate messa5e.
3ater i) t*is !urse- y!u %ill lear) *!% t! ma(e $iel's !) t*e seleti!) sree) rea'y $!r i)&ut
a5ai) i$ y!u &er$!rm t*e aut*!riCati!) *e( ri5*t a$ter t*e seleti!) sree) a)' *!% t! se)' a
messa5e i$ t*e user '!es )!t *a+e t*e reBuire' aut*!riCati!)
>C? SAP AG BC400 #5
6.16
SAP AG 2001
Authori;ation 7b6ects and Authori;ations
S8isplayS authori;ation
$or ob6ect SCCA--48
2
"B
SChangeS authori;ation
$or ob6ect SCCA--48
LH
"D
7b6ect SCCA--48
CA--48 ,Airline.
ACT?T ,Acti"ity.
Acti"ities:
Create
Change
8isplay
P 0+
P 02
P 03
All 'ata i) t*e SAP system must be &r!tete' $r!m u)aut*!riCe' aess by users %*! '! )!t
e6&liitly *a+e &ermissi!) t! aess it.
0*e system a'mi)istrat!r assi5)s user aut*!riCati!)s %*e) mai)tai)i)5 user master 'ata. Duri)5 t*is
&r!ess- y!u s*!ul' 'etermi)e e6atly #hch data users are all!%e' t! aess a)' #hat knd of
access s*!ul' be all!%e'. 9!r e6am&le- y!u mi5*t %a)t t! all!% users t! 'is&lay 'ata $!r all airli)es-
but all!% t*em t! *a)5e 'ata $!r !)ly ertai) !)es. /) t*is ase- t*e system must l!!( $!r a
!mbi)ati!) !$ t*e ati+ity >AC070? a)' airli)e arrier >CARR/D? $iel's ea* time it &er$!rms a)
aut*!riCati!) *e(. B!t* $iel's must be $ille' %it* +alues 'uri)5 aut*!riCati!) reati!) as %ell >i)
t*is e6am&le- ati+ity "han'e a)' airli)e arrier +* !r ati+ity Display a)' airli)e arrier J?. @!u
a) e)sure t*is by reati)5 a) author/aton ob,ect !m&!se' !$ t*e AC070 a)' CARR/D $iel's
t*at must be aesse' b!t* 'uri)5 t*e aut*!riCati!) assi5)me)t &r!ess a)' %*e)e+er y!ur &r!5ram
&er$!rms a) aut*!riCati!) *e(.
Aut*!riCati!) !bGets sim&ly 'e$i)e t*e !mbi)ati!) !$ $iel's t*at )ee' t! be a''resse'
simulta)e!usly a)' ser+e as tem&lates $!r b!t* aut*!riCati!)s a)' aut*!riCati!) *e(s. 0*ey are
!r5a)iCe' i)t! !bGet lasses t! ma(e it easier t! $i)' a)' ma)a5e t*em. O)e !r m!re !bGet lasses
may be assi5)e' t! ea* a&&liati!).
>C? SAP AG BC400 #6
6.17
SAP AG 2001
Synta': Authori;ation Check
-eport
results
0+
02
03
AA AD 82 2: <A
' ' ' ' '
ACT?T
CA--48
Authori;ations
$or ob6ect SCCA--48
AUTHORITY/CHEC@ AUTHORITY/CHEC@
ORECT 9S/CARRID9 ORECT 9S/CARRID9
ID 9CARRID9 FIELD 9LH9 ID 9CARRID9 FIELD 9LH9
ID 9ACT;T9 FIELD 9"D90 ID 9ACT;T9 FIELD 9"D90
Check
'
4F 4F sy sy= =subrc subrc #9 0! #9 0!
ENDIF0 ENDIF0
Conte't=dependent reaction to %issing authori;ation
.*e) y!u *e( aut*!riCati!)s i) &r!5rams- y!u s&ei$y t*e !bGet a)' +alues t*e user )ee's i)
a &artiular aut*!riCati!) t! be able t! aess t*e !bGet i) Buesti!).
/) t*e ab!+e e6am&le- t*ere is a *e( t! 'etermi)e %*et*er t*e user *as aut*!riCati!) $!r t*e
!bGet 0>CA%%239 %*i* *as t*e +alue !46! i) t*e CARR/D $iel' a)' t*e +alue !0?! >*a)5e?
i) t*e AC070 $iel'. 0*e abbre+iati!)s $!r t*e &!ssible ati+ities are '!ume)te' i) t*e table
0AC0 a)' als! i) t*e a&&r!&riate aut*!riCati!) !bGets.
0*e AUTHORITY1CHEC@ stateme)t e6eutes t*e aut*!riCati!) *e( $!r t*e user master
re!r' a)' als! issues t*e retur) !'e. .*e) e+aluati)5 t*e retur) !'e- y!u a) s&ei$y t*e
!)seBue)es !$ la(i)5 aut*!riCati!) >$!r e6am&le- &r!5ram termi)ates !r s(i&s s!me i)&ut
li)es?.
>C? SAP AG BC400 #A
6.18
SAP AG 2001
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 FIELD 9//////////9
ID 9ACT;T9 FIELD 9//////////90

IF SY1SURC NE "0
ENDIF0
4%ple%enting Authori;ation Checks
!!!
!!!
A<T:7-4TACC:9CE
!!!
!!!
0nser! $a!!ern
SCCA--48
IF IF s' s'1 1s),%$ s),%$ NE "0 NE "0
Pattern
4nsert
"alues
9"aluate
return code
@!u must s&ei$y all $iel's !$ t*e !bGet i) a) A+T0ORITY/C0ECK stateme)tH !t*er%ise y!u
reei+e a retur) !'e )!t eBual t! Cer!. /$ y!u '! )!t %a)t t! arry !ut a *e( $!r a &artiular $iel'-
e)ter 31))7 a$ter t*e aut*!riCati!) $iel'.
16am&leE .*e) a *a)5e tra)sati!) is alle'- it is a 5!!' i'ea t! *e( %*et*er t*e user may
*a)5e t*e e)tries $!r a &artiular airli)eE
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 DUMMY
ID 9ACT;T9 FIELD 9"D90
0*e m!st im&!rta)t retur) !'es $!r AUTHORITY1CHEC@ areE
0: ,he user has au!hor"Ja!"on con!a"n"n( !he re.u"re )alues.
4E 0*e user '!es )!t *a+e t*e reBuire' aut*!riCati!).
8E 0*e *e( %as )!t suess$ul beause )!t all $iel's !$ t*e aut*!riCati!) !bGet %ere
s&ei$ie'.
0*e (ey%!r' '!ume)tati!) $!r AUTHORITY1CHEC@ !)tai)s a !m&lete list !$ 0*e *e( %as
)!t suess$ul beause )!t all $iel's !$ t*e aut*!riCati!) !bGet %ere s&ei$ie'retur) !'es.
>C? SAP AG BC400 #8
6.19
SAP AG 2001
Pre"ie&
-eading 8atabase Tables
-eading 8atabase Tables
Authori;ation Checks
Authori;ation Checks
Pre"ie&
Pre"ie&
>C? SAP AG BC400 #8
6.20
SAP AG 2001
-eading 2inkable 8atabase Tables
'A?D, #ARR0D #8??0D #0,CFR8'
...
SPF24
...
'A?D, #ARR0D#ARR?A'4
...
SCA--
... ... ...
... ... ...
... ... ...
Whick link condition should apply to a
co%%on line@
sp+l#1man4t 7 s$a%%1man4t
sp+l#1$a%%#4 7 s$a%%1$a%%#4
Which link condition Which link condition
Which colu%ns are to be read0 and $ro% &hich database table@ Which colu%ns Which colu%ns
Which database tables should be taken into account@ Which database tables Which database tables
SPF24 and SCA--
sp+l#1man4t
sp+l#1$a%%#4
sp+l#1$onn#4
sp+l#1$#t'+%om
s$a%%1$a%%name
@!u a) aess se$eral 'atabase tables usi)5 one 'atabase Buery- i$ t*e 'atabse tables are l!5ially
relate'. 0! '! s!- y!u must s&ei$y t*e $!ll!%i)5 i)$!rmati!)E
.*i* 'atabase tables s*!ul' be aesse'K
.*at s*!ul' t*e li)( !)'iti!) l!!( li(eK /) t*e 5ra&*i- !lum)s $r!m b!t* 'atabase tables are
li)(e'. /$ all t*e $iel' +alues !$ t*e li)(e' !lum)s mat*- a re!r' is &lae' i) a !mm!) li)e i)
t*e results table.
.*i* !lum)s are t! be rea'K /$ a !lum) a&&ears i) m!re t*a) !)e 'atabase table- y!u must
s&ei$y t*e table $r!m %*i* t*is !lum) is t! be rea'.
>C? SAP AG BC400 "0
6.21
SAP AG 2001
ABAP progra%
8ictionary ?ie& and ABAP Ioin
2ink in the ABAP progra% using ABAP Ioin
2ink in 2ink in the 8ictionary the 8ictionary
ABAP 8ictionary ?ie&
2ink in 2ink in the Progra% the Progra%
SELECT 000
FROM sp+l# INNER ROIN s$a%%
ON sp+l#S$a%%#4 7 s$a%%S$a%%#4

3HERE 000
FROM INNER ROIN
ON
SELECT
@!u a) 'e$i)e t*e li)( !)'iti!)s eit*er statially !r 'y)amially.
@!u 'e$i)e a statc lnk !r +ie% i) t*e ABAP Diti!)ary. 0*ere are se+eral (i)'s !$ +ie%s. @!u
a) $i)' i)$!rmati!) ab!ut +ie%s i) t*e SAP 3ibrary u)'er Basis "omponents ABAP
Workbench B" ABAP Dictionary 5iews)
@!u im&leme)t a dynamc lnk !r a) ABAP G!i) usi)5 ABAP stateme)ts. 0*e system 5e)erates a)
a&&r!&riate 'atabase Buery i) t*e 'atabase i)ter$ae at ru) time. 9!r m!re i)$!rmati!)- see t*e
(ey%!r' '!ume)tati!) $!r t*e SELECT stateme)t.
>C? SAP AG BC400 "#
6.22
SAP AG 2001
Pre"ie&: -eusable Co%ponents $or 8ata -etrie"al
Business
7b6ect
2ogical
8atabase
7b6ect
Function
group
lobal
class
%ethods
BAP4s
/$ reusable !m&!)e)ts t*at e)a&sulate !m&le6 'ata retrie+al stateme)ts are a+ailable- y!u s*!ul'
use t*em. 0*ere are $!ur te*)iBues $!r reusi)5 'ata retrie+al !m&!)e)tsE.
Calli)5 met*!'s !$ 5l!bal lasses
Calli)5 met*!'s !$ busi)ess !bGets
Calli)5 $u)ti!) m!'ules
/)lu'i)5 l!5ial 'atabases R 3!5ial 'atabases are 'ata retrie+al &r!5rams t*at retur) l!5ially:
!))ete' 'ata i) a *ierar*ial seBue)e.
@!u a) $i)' i)$!rmati!) !) t*ese te*)iBues i) t*e a&&r!&riate u)its)
9!r 'etaile' i)$!rmati!) !) *!% t! i)lu'e l!5ial 'atabases- re$er t! t*e SAP 3ibrary u)'erE
Basis "omponents ABAP Pro'rammin' an! .$ntime Environment ABAP Database Accesses
+o'ical Databases)
>C? SAP AG BC400 ""
6.23
SAP AG 2001
Pre"ie&: 8atabase Accesses 4nitiating Changes
S929CT S929CT
INSERT INSERT
UPDATE UPDATE
DELETE DELETE
MODIFY MODIFY
/) a''iti!) t! t*e S131C0 stateme)t- O&e) S43 !)tai)s t*e UPDATE8 INSERT8 DELETE-
a)' MODIFY stateme)ts.
D! )!t use t*ese 'ata base aesses- %*i* i)itiate *a)5es i) t*e 'atabase- u)less y!u
u)'ersta)' t*e SAP tra)sati!) !)e&t.
All O&e) S43 stateme)ts su&&!rt t*e retur) !'e sy-subrc. /$ a 'atabase aess %as suess$ul-
t*e retur) !'e i) t*e system $iel' sy-subrc is 0H i$ it %as )!t suess$ul- t*e retur) !'e is )!t
0.
9!r m!re i)$!rmati!) ab!ut O&e) S43 stateme)ts- re$er t! t*e res&eti+e (ey%!r'
'!ume)tati!).
>C? SAP AG BC400 "3
6.24
SAP AG 2001
2ist "arious &ays o$ $inding database tables
Progra% read access to speci$ic colu%ns and
lines &ithin a particular database table
4%ple%ent authori;ation checks
2ist the read access options $or %ultiple database
tables
#o& you are able to:
8ata -etrie"al: Su%%ary
>C? SAP AG BC400 "4
6.25 'ata Retrie.a% E$ercises
1nt: 3ata %etre$al
Topc: %eadng 0e$eral %ecords 1sng a 4oop
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Pr!5ram l!!& 'atabase aesses
3imit t*e Bua)tity !$ selete' 'ata i) a!r'a)e %it* a) i)&ut
&arameter
1)*a)e y!ur ABAP &r!5ram t! issue $li5*t s*e'ules s! t*at !)ly t*e
s*e'ules !$ t*e airli)e arriers selete' by t*e user are 'is&laye'.
0*e list s*!ul' als! i)lu'e t*e &ere)ta5e !u&a)y !$ ea* $li5*t
s*e'ule'.
0em&lateE =C!""/>>/GS/LIST !r
SAPBC400WBS_GS_LIST
Pr!5ramE =C!""/>>/SELECT/SFLIGHT
M!'el s!luti!)E SAPBC400DDS_SELECT_SFLIG0T
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
#:# C!&y y!ur e6eutable &r!5ram =C!""/>>/GS/LIST
>s!luti!) $!r e6erise " i) u)it 3- /)tr!'uti!) t! t*e ABAP .!r(be)*? !r t*e
tem&late SAPBC400WBS_GS_LIST t! t*e )e% )ame
=C!""/>>/SELECT/SFLIGHT.
#:" C*a)5e t*e %!r( area ty&e )ame >)ame su55esti!)E .a/+l#(&t?. N!% use t*e
5l!bal struture 0BC400*+CC.
9i)' !ut i)$!rmati!) !) t*e !m&!)e)ts >$iel's? !$ t*is struture.
#:3 De$i)e a) i)&ut &arameter $!r t*e airli)e abbre+iati!).
#:4 N!% selet !)ly t*e $li5*ts $r!m t*e 'atabase table 0*4256T t*at bel!)5 t! t*e
selete' airli)e.
Selet !)ly t*!se $iel's t*at *a+e a tar5et $iel' i) t*e %!r( area.
#:5 .it*i) t*e l!!& stateme)t- alulate t*e &ere)ta5e !u&a)y $!r ea* $li5*t.
Assi5) t*e result t! t*e PERCENTAGE $iel' i) y!ur %!r( area.
#:6 16te)' y!ur list !ut&ut t! i)lu'e t*e &ere)ta5e !u&a)y.
>C? SAP AG BC400 "5
#:A .*at is t*e $irst (ey $iel' i) t*e tra)s&are)t table 0*4256TK
.*at is t*e $irst (ey $iel' i) y!ur W6(%( lauseK
D!es t*e 'atabase i)ter$ae still use t*e &rimary i)'e6K
>C? SAP AG BC400 "6
("ercses
1nt: 3ata %etre$al
Topc: *llng and 0ortng an 2nternal Table
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
9ill a) i)ter)al table %it* 'ata by a&&e)'i)5 'ata re!r's
S!rt t*e !)te)t !$ a) i)ter)al table
1)*a)e y!ur ABAP &r!5ram $!r t*e !ut&ut !$ $li5*t 'e&arture times s!
t*at t*e $li5*ts a&&ear i) t*e list s!rte' by &ere)ta5e !u&a)y.
9!r t*is &ur&!se- a&&e)' t*e rea' 'ata re!r's $!r t*e selete' airli)e
arrier t! a) i)ter)al table.
0em&lateE =C!""/>>/SELECT/SFLIGHT !r
SAPBC400DDS_SELECT_SFLIG0T
Pr!5ramE =C!""/>>/SELECT/SFLIGHT/ITA
M!'el s!luti!)E SAPBC400DDS_SELECT_SFLIG0T_TAB
## sta)'s $!r t*e t%!:'i5it 5r!u& )umber.
":# C!&y y!ur e6eutable &r!5ram =C!""/>>/SELECT/SFLIGHT
>s!luti!) $!r e6erise # i) t*is u)it? !r t*e tem&late
SAPBC400DDS_SELECT_SFLIG0T t! t*e )e% )ame
=C!""/>>/SELECT/SFLIGHT/ITA.
":" De$i)e a) i)ter)al table >)ame &r!&!salE #t/+l#(&t? usi)5 a 5l!bal table ty&e as
a basis t*at *as t*e 5l!bal struture 0BC400*+CC as li)e ty&e.
;se t*e Where2$se! list i) t*e ABAP Diti!)ary t! $i)' a suitable
table ty&e.
":3 9ill t*is i)ter)al table li)e by li)e by usi)5 a) INSERT stateme)t i) t*e SELECT
l!!&. >Rem!+e t*e stateme)ts $!r list !ut&ut. @!u a) use t*e s!ure te6t a5ai)
later.?
":4 S!rt t*e i)ter)al table by &ere)ta5e !u&a)y a)' 'is&lay t*e !)te)ts !$ t*e
i)ter)al table i) a l!!& !) a list.
>C? SAP AG BC400 "A
("ercses
1nt: 3ata %etre$al
Topc: Author/aton Check
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
/m&leme)t aut*!riCati!) *e(s
Set u& t*e &r!5ram $l!% i) a +ariable ma))er 'e&e)'i)5 !) t*e
!ut!me !$ t*e aut*!riCati!) *e(
1)*a)e y!ur ABAP &r!5ram s! t*at t*e $li5*ts a) be rea' a)'
'is&laye' !)ly i$ t*e user *as 'is&lay aut*!riCati!) $!r t*e selete'
airli)e.
0em&latesE =C!""/>>/SELECT/SFLIGHT a)'
=C!""/>>/SELECT/SFLIGHT/ITA
SAPBC400DDS_SELECT_SFLIG0T a)'
SAPBC400DDS_SELECT_SFLIG0T_TAB
ProgramsE =C!""/>>/AUTHORITY/CHEC@ a)'
=C!""/>>/AUTHORITY/CHEC@/D
M!'el s!luti!)sE SAPBC400DDS_A+T0ORITY_C0ECK a)'
SAPBC400DDS_A+T0ORITY_C0ECK_6
>> stands for the t#o-dgt group number.
3:# C!&y y!ur e6eutable &r!5rams
=C!""/>>/SELECT/SFLIGHT >s!luti!) $!r e6erise # i) t*is u)it? a)'
=C!""/>>/SELECT/SFLIGHT/ITA >s!luti!) $!r e6erise " i) t*is u)it? !r
t*e tem&lates SAPBC400DDS_SELECT_SFLIG0T a)'
SAPBC400DDS_SELECT_SFLIG0T_TAB t! t*e )e% )ames
=C!""/>>/AUTHORITY/CHEC@ a)' =C!""/>>/AUTHORITY/CHEC@/D.
3:" Pr!5ram a) aut*!riCati!) *e( $!r t*e aut*!riCati!) !bGet 0>CA%%23. C*e( t*e
!mbi)ati!) !$ selete' airli)e a)' ati+ity Display.
;se t*e res&eti+e Pattern stateme)t i) t*e ABAP 1'it!r.
Sear* $!r t*e !rret abbre+iati!) !$ t*e ati+ity t! be *e(e'.
3:3 De$i)e a !)sta)t $!r t*e abbre+iati!) !$ t*e ati+ity ODisplayP >)ame &r!&!sal
a$tvt/4#spla'?. ;se ACT2@>A1T6 $!r ty&i)5 t*e 'ata eleme)t a)' use t*is
!)sta)t 'uri)5 t*e aut*!riCati!) *e(.
>C? SAP AG BC400 "8
3:4 16eute t*e 'atabase aess !)ly i$ t*e user *as 'is&lay aut*!riCati!) $!r t*e
selete' airli)e. /$ t*is is )!t t*e ase- 'is&lay a) a&&r!&riate err!r messa5e !) t*e
list.
3:5 16eute y!ur &r!5ramsH selet t*e airli)e abbre+iati!)s .DAAD a)' D1AD.
>C? SAP AG BC400 "8
6.26'ata Retri.a% So%&tions
1nt: 3ata %etre$al
Topc: %eadng 0e$eral %ecords 1sng a 4oop
#:" 0*e 5l!bal struture SC!""FOCC *as t*e $!ll!%i)5 !m&!)e)tsE
CARRID %it* ty&e S/CARR/ID
CONNID %it* ty&e S/CONN/ID
FLDATE %it* ty&e S/DATE
SEATSMAX %it* ty&e S/SEATSMAX
SEATSOCC %it* ty&e S/SEATSOCC
PERCENTAGE %it* ty&e S/FLGHTOCC.
#:A 0*e MANDT $iel' i) 0*4256T is mar(e' as a (ey $iel'. 0*e 3HERE !)'iti!)
'!es )!t )ee' t*is $iel'. Des&ite t*is $at- t*e 'atabase i)ter$ae a) use t*e &rimary
i)'e6 i) t*is ase $!r seleti)5 t*e 'ata re!r's.
%eason:
.*e) t*e ABAP ru)time system aesses a lie)t:s&ei$i table- it assumes t*at
'ata s*!ul' be ta(e) i)t! a!u)t !)ly i$ it bel!)5s t! t*e lie)t u)'er %*i* t*e
user is l!55e' !). 0*us- by 'e$ault- t*e 'atabase i)ter$ae e)*a)es t*e 3HERE
!)'iti!) %it* a 3HERE man4t 7 s'1man4t !)'iti!).
>C? SAP AG BC400 30
# M!'el s!luti!)E
REPORT sap,$!""44s/sele$t/s+l#(&t 0
DATA: .a/+l#(&t TYPE s,$!""+o$$6
PARAMETERS: pa/$a% TYPE s/$a%%/#40
< Se&e.# a&& da#a,e#, !om da#a)a,e #a)&e SFLIG0T
< .oe,pond"n' #o .a"e PA_CAR=
SELECT $a%%#4 $onn#4 +l4ate seatsma? seatso$$
FROM s+l#(&t
INTO CORRESPONDING FIELDS OF .a/+l#(&t
3HERE $a%%#4 7 pa/$a%0
< Ca&.-&a#e o..-pa#"on o! ea.( !&"'(#:
.a/+l#(&t1pe%$enta(e 7
<"" 2 .a/+l#(&t1seatso$$ * .a/+l#(&t1seatsma?0
< Cea#e L",#=
3RITE: * .a/+l#(&t1$a%%#46
.a/+l#(&t1$onn#46
.a/+l#(&t1+l4ate6
.a/+l#(&t1seatsma?6
.a/+l#(&t1seatso$$6
.a/+l#(&t1pe%$enta(e6
9N90
ENDSELECT0
>C? SAP AG BC400 3#
0olutons
1nt: 3ata %etre$al
Topc: *llng and sortng an nternal table
" M!'el s!luti!)E
REPORT sap,$!""44s/sele$t/s+l#(&t/ta,0
DATA: ;a_!&"'(# TYPE ,).400!o..8
#t/+l#(&t TYPE s,$!""/t/s,$!""+o$$0
PARAMETERS= pa_.a TYPE ,_.a_"d%
< ,e&e.# a&& da#a,e#, !om da#a)a,e #a)&e SFLIG0T
< .oe,pond"n' #o .a"e
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o..
FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a%
< .a&.-&a#e o..-pa#"on o! ea.( !&"'(#
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
< append ,"n'&e &"ne "n#o "n#ena& #a)&e
INSERT .a/+l#(&t INTO TALE #t/+l#(&t0
< a&#ena#"4e&$8 $o- .o-&d -,e #(e APPEND ,#a#emen#8
< "! $o- ae -,"n' ,#andad #a)&e,=
<
< APPEND ;a_!&"'(# TO "#_!&"'(#%
ENDSELECT%
< ,o# "n#ena& #a)&e
SORT #t/+l#(&t Y pe%$enta(e0
< .ea#e &",# !om ,o#ed "n#ena& #a)&e
LOOP AT #t/+l#(&t INTO .a/+l#(&t0
3RITE: * .a/+l#(&t1$a%%#46
.a/+l#(&t1$onn#46
.a/+l#(&t1+l4ate6
.a/+l#(&t1seatso$$6
.a/+l#(&t1seatsma?6
.a/+l#(&t1pe%$enta(e69N90
ENDLOOP0
>C? SAP AG BC400 3"
0olutons
1nt: 3ata %etre$al
Topc: Author/aton Checks
3 M!'el s!luti!)E
REPORT sap,$!""44s/a)t&o%#t'/$&e$M0
CONSTANTS a$tvt/4#spla' TYPE a$t#v/a)t& ;ALUE 9"B90
DATA ;a_!&"'(# TYPE ,).400!o..%
PARAMETERS pa_.a TYPE ,_.a_"d%
< a-#(o"#$/.(e.9=
< I, -,e a-#(o"@ed #o d",p&a$ da#a !o .a"e PA_CARA
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 FIELD pa/$a%
ID 9ACT;T9 FIELD a$tvt/4#spla'0
CASE s'1s),%$0
< -,e ", a-#(o"@ed
3HEN "0
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o..
FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a%
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
WRITE= ? ;a_!&"'(#/.a"d COLOR COL_KEY8
;a_!&"'(#/.onn"d COLOR COL_KEY8
;a_!&"'(#/!&da#e COLOR COL_KEY8
;a_!&"'(#/,ea#,o..8
;a_!&"'(#/,ea#,ma18
;a_!&"'(#/pe.en#a'e8BCB%
ENDSELECT%
< -,e ", no# a-#(o"@ed o
< o#(e eo o! a-#(o"#$/.(e.9
3HEN OTHERS0
3RITE: * 9A)t&o%#t'1C&e$M E%%o%9A""<C0
ENDCASE0
>REPORT ,ap).400dd,_a-#(o"#$_.(e.9_6 a)al!5?.
>C? SAP AG BC400 33
1
SAP AG 2001
8e$ining Subroutines
4nter$ace Para%eters
?isibility
Calling Subroutines
Subroutines in 8ebugging (ode
Contents:
4nternal Progra% (odulari;ation &ith Subroutines
>C? SAP AG BC400 #
7.2
SAP AG 2001
8e$ine subroutines
Call subroutines
Analy;e the e'ecution o$ subroutines in
debugging %ode
At the conclusion o$ this unit0 you &ill be able to:
4nternal Progra% (odulari;ation &ith Subroutines:
<nit 7b6ecti"es
>C? SAP AG BC400 "
7.3
SAP AG 2001
ABAP progra%
Calls and 4nter$aces
30!00
Percen!a(e
occu$"e
))!)0
Sales ra!"o
4nter$ace 4nter$ace
Subroutine
200
,o!al sea!s
+000
0n.u"r"es
*0
8ccu$"e sea!s
)))
Book"n(s
PERFORM 000
PERFORM 000
FORM 000
2 00000000000000000000 $al$)late pe%$enta(e 000
ENDFORM0
Actual para%eters
For%al para%eters
A subroutne is a) i)ter)al m!'ule %it*i) a &r!5ram. /) a subr!uti)e- y!u li$t &arts !$ a
&r!5ram !ut !$ t*e mai) &r!5rammi)5 bl!( a)' &ut t*em s!me%*ere else. 0*is ma(es y!ur
&r!5ram easier t! rea' a)' all!%s y!u t! use t*ese !'e se5me)ts m!re t*a) !)e.
@!u a) &ass 'ata t! t*e subr!uti)e a)' ba( t*r!u5* its i)ter$ae. 0*is all!%s y!u t! all t*e
same $u)ti!) $!r 'i$$ere)t 'ata !bGets. 0*e e6am&le i) t*e 5ra&*i s*!%s a subr!uti)e t*at
alulates a &ere)ta5e. 0*is subr!uti)e is alle' se+eral times- e+e) t*!u5* 'i$$ere)t 'ata
!bGets are &asse' t! t*e i)ter$ae i) ea* ase.
;si)5 subr!uti)es ma(es y!ur &r!5ram m!re functon orentedE it s&lits t*e &r!5ramIs tas( i)t!
sub$u)ti!)s s! t*at ea* subr!uti)e is res&!)sible $!r !)e sub$u)ti!).
0*is 5e)erally ma(es &r!5rams easier t! mai)tai). /) t*e Debu55er- y!u a) e6eute t*e
subr!uti)es i) ba(5r!u)' s! t*at y!u see !)ly t*e result. 0*is usually ma(es it easier t! $i)'
t*e s!ure !$ t*e err!r.
0*e structure of a subroutne i)lu'es t*e $!ll!%i)5E
1a* subr!uti)e starts %it* FORM a)' e)'s %it* ENDFORM.
0*e )ame !$ t*e subr!uti)e is $!ll!%e' by t*e i)ter$ae 'e$i)iti!).
0*e stateme)ts t*at t*e subr!uti)e e6eutes !me bet%ee) 9ORM a)' 1ND9ORM.
>C? SAP AG BC400 3
7.4
SAP AG 2001
Ways o$ Passing 4nter$ace Para%eters
Passes an address Passes a "alue Passes and returns a "alue
Call=by="alue Call=by=re$erence Call=by="alue=and=result
@!u s&ei$y *!% t*e 'ata is &asse' $r!m t*e mai) &r!5ram >actual parameters? t! t*e
subr!uti)e >formal parameters? i) t*e i)ter$ae !$ t*e subr!uti)e. @!u a) '! t*is i) t*ree
%ays:
Call-by-$alue R A local copy !$ t*e atual &arameter is &asse' t! t*e subr!uti)e. 0*is mea)s
t*at +alue assi5)me)ts t! t*e $!rmal &arameter *a+e absolutely no effect !) t*e atual
&arameter.
Call-by-reference R A dereferenced address !$ t*e atual &arameter is &asse' t! t*e
subr!uti)e. 0*is mea)s t*at +alue assi5)me)ts t! t*e $!rmal &arameter drectly affect t*e atual
&arameter. 0*e +alue !$ t*e atual &arameter is &*ysially *a)5e' by t*e subr!uti)e t*r!u5*
t*e a''ress.
Call-by-$alue-and-result R A local copy !$ t*e atual &arameter is &asse' t! t*e subr!uti)e
a)' a $alue s passed back t! t*e mai) &r!5ram !)ly i$ t*e 1ND9ORM stateme)t is e6eute'.
0*is mea)s t*at +alue assi5)me)ts t! t*e $!rmal &arameter a$$et t*e atual &arameter !)ly
after they ha$e left the subroutne. C*!!se t*is !&ti!) i$ y!u %a)t t! ma(e sure t*at t*e atual
&arameter is not *a)5e' i$ t*e subr!uti)e is termi)ate' &rematurely.
>C? SAP AG BC400 4
7.5
SAP AG 2001
Passing 4nter$ace Para%eters: Synta'
FORM s),%o)t#ne/name USING val)eA+<C 000
CHANGING +D 000
val)eA+BC 000 0
000
ENDFORM0
-1 -2 -3
PERFORM s),%o)t#ne/name USING a<
CHANGING aD
aB0
a1 a2 a3
USING USING val)e val)eA A C C
val)e val)eA A C C
CHANGING CHANGING
USING USING
CHANGING CHANGING
/) t*e i)ter$ae 'e$i)iti!)- y!u list t*e formal parameters !$ t*e 'i$$ere)t s!rts a)' assi5) a
ty&e t! ea* !)e. 0*e se.uence of parameters is $i6e'E $irst y!u )ame all t*e USING
&arameters- t*e) y!u )ame all t*e CHANGING &arameters. .it*i) t*e subr!uti)e- y!u a''ress
t*e 'ata t*at *as bee) &asse' usi)5 t*e $!rmal &arameters.
0*e atual &arameters are 5r!u&e' by +SING a)' C0ANGING %*e) t*e subr!uti)e is alle'.
@!u s&ei$y t*e %ay i) %*i* t*e &arameters are t! be &asse' i) t*e i)ter$ae 'e$i)iti!)E
Call-by-$alue >+<? R @!u list t*ese &arameters a$ter t*e +SING (ey%!r' a)' !m&lete
t*em %it* t*e val)eA!5C a''iti!).
Call-by-reference >+D? R @!u list t*ese &arameters a$ter t*e C0ANGING (ey%!r'.
>9!r '!ume)tati!) &ur&!ses- y!u a) als! list a &ass:by:re$ere)e &arameter a$ter +SING.
0e*)ially- +SING a)' C0ANGING *a+e e6atly t*e same e$$et. ><!%e+er- i$ y!u *a)5e a
&arameter liste' a$ter +SING i) t*e subr!uti)e- y!u reei+e a %ar)i)5 i) t*e 16te)'e' Pr!5ram
C*e(.?
Call-by-$alue-and-result >+B? R @!u list t*ese &arameters a$ter t*e C0ANGING
(ey%!r' a)' !m&lete t*em %it* t*e val)eA!7C a''iti!)
>C? SAP AG BC400 5
7.6
SAP AG 2001
4nter$ace Para%eters: Speci$ied and 4nherited Types
TYPES t/pe%$ TYPE p DECIMALS D0
DATA: a< TYPE 0006
aD TYPE 0006
aB TYPE 000 0
000
PERFORM $al$/pe%$ USING a<
aD
CHANGING aB0
FORM $al$/pe%$
USING
val)eA+/pa%tC TYPE #
val)eA+/allC TYPE #
CHANGING
val)eA+/p$C TYPE t/pe%$0
CHEC@ +/all KL "0
+/p$ 7 +/pa%t 2 <"" * +/all0
ENDFORM0
DATA: a< TYPE 0006
aD TYPE 0006
aB TYPE 000 0
000
PERFORM $al$/pe%$ USING a<
aD
CHANGING aB0
FORM $al$/pe%$
USING
val)eA+/pa%tC TYPE ANY
val)eA+/allC TYPE ANY
CHANGING
val)eA+/p$C TYPE ANY0
CHEC@ +/all KL "0
+/p$ 7 +/pa%t 2 <"" * +/all0
ENDFORM0
TYPE # TYPE #
TYPE # TYPE #
TYPE t/ TYPE t/pe%$ pe%$
Speci$ied type 4nherited type
-isk o$ type con$licts
0*e 'ata !bGets &asse' t! a subr!uti)e >t*at is- t*e atual &arameters? a) be of any type. /$
y!u use elementary types- y!u a) 'ei'e %*et*er !r )!t y!u %a)t t! s&ei$y t*e ty&e !$ t*e
$!rmal &arameters.
By s&ei$yi)5 t*e ty&e !$ t*e $!rmal &arameters- y!u e)sure t*at !)ly atual &arameters !$ t*at
ty&e a) be &asse' t! t*e subr!uti)e. 0*is ma(es y!ur &r!5ram m!re stable beause t*e sy)ta6
*e( %ill $i)' a)y ty&e !)$lits.
/$ y!u use t*e TYPE ANY a''iti!)- y!u lea+e t*e ty&e u)s&ei$ie'. >9!r !m&atibility reas!)s-
y!u a) als! !mit t*is a''iti!).? /) t*is ase- t*e $!rmal &arameter i)*erits t*e ty&e $r!m t*e
atual &arameter at ru) time. /$ t*e stateme)ts i) t*e subr!uti)e are )!t suite' t! t*e i)*erite'
ty&e- a runtme error may !ur.
/$ y!u assi5) t*e ty&es p- n- $ !r ?- t*e mssng ty&e attributes are similarly Di)*erite'D at ru)
time. /$ y!u %a)t t! s&ei$y a ty&e !m&letely- y!u must use a user:'e$i)e' ty&e. /$ y!u use
st%#n( !r ?st%#n(- t*e ty&e is )!t $ully s&ei$ie' u)til ru) time.
C!)+ersely- t*e ty&es #- +- 4- a)' t are $ully ty&e'.
>C? SAP AG BC400 6
7.7
SAP AG 2001
4nter$ace Para%eters: Speci$ying Types $or
Structures and 4nternal Tables
DATA .a/+l#(&t#n+o
TYPE s,$!""+o$$0
000
PERFORM +#ll/.a
CHANGING .a/+l#(&t#n+o0
FORM +#ll/.a
CHANGING
+/.a TYPE s,$!""+o$$0
+/.a1$a%%#4 7 000 0
+/.a1$onn#4 7 000 0
ENDFORM0
DATA #t/+l#(&t#n+o
TYPE s,$!""/t/s,$!""+o$$0
000
PERFORM +#ll/#ta,
CHANGING #t/+l#(&t#n+o0
FORM +#ll/#ta,
CHANGING
+/#ta, TYPE s,$!""/t/s,$!""+o$$0
LOOP AT +/#ta, 000 0
000
ENDLOOP0
ENDFORM0
TYPE s,$!""+o$$ TYPE s,$!""+o$$ TYPE s,$!""/t/s,$!""+o$$ TYPE s,$!""/t/s,$!""+o$$
Table type Structure type
Address the para%eter as
an internal table
Address the structure
co%ponents
/$ y!u use structures !r nternal tables as $!rmal &arameters- y!u must ty&e t*em $ully. 0*is all!%s
y!u t! aess t*ese $!rmal &arameters %it*i) t*e subr!uti)e.
0*e !m&!)e)ts !$ strutures are ()!%) i) t*e subr!uti)e- as a result !$ t*e assi5)e' ty&e- s! t*at
y!u a) a''ress t*ese !m&!)e)ts %it* t*e usual sy)ta6.
/$ y!u use i)ter)al tables- t*e assi5)e' ty&e all!%s y!u t! a''ress t*e $!rmal &arameter as an
nternal table %it* t*e usual sy)ta6.
-ote on performanceE
/$ y!u use nternal tables as &arameters- y!u s*!ul' 5e)erally &ass t*em usi)5 pass-by-reference.
Ot*er%ise- t*e system a) use !)si'erable res!ures sim&ly !&yi)5 t*em t! t*e subr!uti)e.
>C? SAP AG BC400 A
7.8
SAP AG 2001
?isibility o$ lobal and 2ocal 8ata 7b6ects
000
PERFORM +#ll/#ta, CHANGING #t/+l#(&t#n+o0
FORM +#ll/#ta,
CHANGING
+/#ta, TYPE s,$!""/t/s,$!""+o$$0
DATA l/.a LI@E LINE OF +/#ta,0
LOOP AT +/#ta, INTO l/.a0
000
ENDLOOP0
ENDFORM0
?isible globally
?isible locally
DATA: #t/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$6
.a/+l#(&t#n+o TYPE s,$!""+o$$6
000 0
DATA DATA
@!u a) 'e$i)e local data %it*i) a subr!uti)e.
B!t* t*e $!rmal &arameters a)' t*e l!al 'ata !bGets are ati+e !)ly at t*e ru) time !$ t*e
subr!uti)e. 0*is mea)s t*at mem!ry is all!ate' !)ly %*e) t*e subr!uti)e is alle' a)' is
release' as s!!) as t*e subr!uti)e *as bee) e6eute'. 0*us t*ese &arameters a)' 'ata !bGets
a) be a''resse' !)ly $r!m %it*i) t*e subr!uti)e.
0*e 5l!bal 'ata !bGets $r!m t*e mai) &r!5ram a) als! be a''resse' $r!m t*e subr!uti)e.
<!%e+er- y!u s*!ul' a+!i' '!i)5 t*is %*ere+er &!ssible. Ot*er%ise- y!u by&ass t*e i)ter$ae-
%*i* ma(es t*e &r!5ram m!re &r!)e t! err!rs.
/$ a l!al 'ata !bGet !r $!rmal &arameter *as t*e same )ame as a 5l!bal 'ata !bGet- t*e ABAP
runtme system a''resses t*e l!al 'ata !bGet i) t*e subr!uti)e a)' t*e 5l!bal !)e !utsi'e it.
0*ese !bGets are t*e) ()!%) as locally obscured !bGets.
Summary !$ *i)ts ab!ut 5!bal a)' l!al 'ata !bGetsE
A''ress t*e 5l!bal 'ata !bGets i) t*e mai) &r!5ram a)' &ass t*em t! t*e subr!uti)e
usi)5 t*e i)ter$ae.
A''ress !)ly $!rmal &arameters a)' l!al 'ata !bGets i) t*e subr!uti)e.
9!r larity- a+!i' usi)5 i'e)tially )ame' 5l!bal a)' l!al +ariables. /)stea'- use a
sim&le &re$i6- su* as +/ $!r $!rmal &arameters a)' l/ $!r l!al 'ata !bGets.
>C? SAP AG BC400 8
7.9
SAP AG 2001
Synta' 9'a%ple: Passing an 4nternal Table
DATA: #t/+l#(&t#n+o TYPE s,$!""/t/s,$!""+o$$6
.a/+l#(&t#n+o TYPE s,$!""+o$$6
l#nes TYPE #0
000
PERFORM $o)nt/l#nes USING #t/+l#(&t#n+o
9LH9
CHANGING l#nes0
FORM $o)nt/l#nes USING +/#ta, TYPE s,$!""/t/s,$!""+o$$
+/$a%% TYPE s,$!""+o$$1$a%%#4
CHANGING val)eA+/l#nesC TYPE #0
DATA l/.a LI@E LINE OF +/#ta,0
CLEAR +/l#nes0
LOOP AT +/#ta, INTO l/.a
3HERE $a%%#4 7 +/$a%%0
ADD < TO +/l#nes0
ENDLOOP0
ENDFORM0
0*e e6am&le i) t*e 5ra&*i s*!%s a mai) &r!5ram alli)5 a subr!uti)e- %*i* s&ei$ies t*e
)umber !$ li)es !$ a) i)ter)al table )ee'e' t! $ul$ill a s&ei$i riteri!).
0*e i)ter)al table- +/#ta,- a)' t*e !m&aris!) +alue- +/$a%%- are &asse' by re$ere)e t!
im&r!+e &er$!rma)e. 0*e )umber !$ li)es- +/l#nes- is &asse' by +alue:a)':result.
0! l!!& t*r!u5* t*e i)ter)al table- y!u )ee' a %!r( area %it* a !m&atible li)e ty&e- %*i* y!u
'e$i)e l!ally i) t*e subr!uti)e- by ma(i)5 a re$ere)e t! t*e $!rmal &arameter.
>C? SAP AG BC400 8
7.10
SAP AG 2001
Calling Subroutines
Syste% :elp Syste% :elp
D00CF7-(
ABAP E/itor( C#an*in* t#e Report 000123R4
Subroutines
C7<#TC24#9S FORM $o)nt/l#nes
USING +/#ta, TYPE 000
+/$a%% TYPE 000
CHANGING val)eA+/l#nesC TYPE 000 0
000
ENDFORM0
PERFORM $o)nt/l#nes
USING
+/#ta,
+/$a%%
CHANGING
+/l#nes0
2 :
Adapt the actual
para%eters
B
+ :
Sdrag=and=dropS
A subr!uti)e is alle' usi)5 t*e PERFORM stateme)t.
.*e) t*e subr!uti)e is alle'- &arameters are &asse' t! it n strct se.uence.
9!r t*is reas!)- y!u s*!ul' 'e$i)e t*e subr!uti)e $irst a)' t*e) all it. 0*e ObGet Na+i5at!r
su&&!rts y!u i) t*is res&etE @!u a) 5e)erate t*e PERFORM stateme)t by 'ra55i)5 t*e
subr!uti)e $r!m t*e )a+i5ati!) area t! t*e e'it!r area.
Alter)ati+ely- y!u a) 5e)erate t*e all usi)5 t*e Pattern $u)ti!) i) t*e ABAP 1'it!r.
0*is &re+e)ts y!u $r!m mi6i)5 u& !r $!r5etti)5 a)y &arameters. <!%e+er- y!u must remember
t! re&lae t*e $!rmal &arameters %it* atual &arameters.
>C? SAP AG BC400 #0
7.11
SAP AG 2001
Subroutines in 8ebugging (ode
Dar"an!
@GGA>3RSA000
@GGAF8R'S
1 4
9
Dar"an!

FORM $o)nt/l#nes USING +/#ta, TYPE 000


+/$a%% TYPE 000
CHANGING val)eA+/l#nesC TYPE 000 0
DATA l/.a LI@E LINE OF +/#ta,0
F"2e $o"n! ar"!h*e!"c
1% 30 9







E
SAP
Wa!ch$o"n!
ABAP 'e"&**er


chws chws
SC9S3BR# SC9,AB0E SC9DB#?, 0 0 1
$Ccarr 2:
9'ecute
-eturn
/) 'ebu55i)5 m!'e- y!u a) ma(e a subr!uti)e ru) %it*!ut st!&&i)5. 0*e e6euti!) !$ t*e mai)
&r!5ram '!es )!t st!& u)til a$ter t*e subr!uti)e *as bee) e6eute'.
Alter)ati+ely- y!u a) e6eute t*e subr!uti)e stateme)t by stateme)t usi)5 &in'le &tep)
/$ t*e urre)t stateme)t is l!ate' i) a subr!uti)e- y!u a) ru) t*e rest !$ t*e subr!uti)e %it*!ut
it st!&&i)5 by seleti)5 .et$rn -,6). 16euti!) !$ t*e mai) &r!5ram '!es )!t st!& u)til a$ter t*e
subr!uti)e is e6eute'.
>C? SAP AG BC400 ##
7.12
SAP AG 2001
8e$ine subroutines
Call subroutines
Analy;e the e'ecution o$ subroutines in
debugging %ode
Aou are no& able to:
4nternal Progra% (odulari;ation &ith Subroutines:
<nit Su%%ary
>C? SAP AG BC400 #"
7.134o/&%ari5ation E$ercises
1nt: 2nternal Program )odular/aton
Topc: 0ubroutnes
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create subr!uti)es
;se t*e subr!uti)e i)ter$ae t! &ass 'ata
C*a)5e y!ur &r!5ram =C!""/>>/SELECT/SFLIGHT/ITA >!r t*e
!rres&!)'i)5 m!'el s!luti!)? s! t*at t*e 'is&lay !$ t*e 'ata i) a list is
e)a&sulate' i) a subr!uti)e.
Template: =C!""/>>/AUTHORITY/CHEC@/D o
SAPC!""DDS/AUTHORITY/CHEC@/D
Program: =C!""/>>/SUROUTINE
)odel soluton: SAPC!""PS/SUROUTINE
#:# C!&y y!ur &r!5ram =C!""/>>/AUTHORITY/CHEC@/D !r t*e !rres&!)'i)5
m!'el s!luti!) SAPC!""DDS/AUTHORITY/CHEC@/D t! t*e )e% &r!5ram
=C!""/>>/SUROUTINE.
#:" 1)a&sulate t*e 'is&lay !$ 'ata i) a list i) a subr!uti)e. Call t*e subr!uti)e
>su55este' )ameE 3RITE/LIST? a$ter t*e SELECT l!!&. Pass t*e i)ter)al table
!)tai)i)5 t*e 'ata t*at *as bee) rea' usi)5 t*e i)ter$ae.
#:3 De$i)e t*e subr!uti)e a)' s&ei$y ty&es $!r t*e i)ter$ae &arameters.
#:4 Dis&lay t*e 'ata $r!m t*e subr!uti)e usi)5 a LOOPT ENDLOOP struture. 0! '!
t*is- reate t*e reBuire' table %!r( area as a l!al 'ata !bGet i) t*e subr!uti)e. 0!
s&ei$y t*e ty&e !$ t*e l!al struture- use t*e ABAP stateme)t DATA 2;a3 LI@E
LINE OF 2"#a)3.
>C? SAP AG BC400 #3
7.144o/&%ari5ation So%&tions
1nt: 2nternal Program )odular/aton
Topc: 0ubroutnes
)odel soluton 0APBC400PB0>01B%+1T2-(
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400PBS_S+BRO+TINE <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400p),_,-)o-#"ne%
CONSTANTS a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B%
DATA= ;a_!&"'(# TYPE ,).400!o..8
"#_!&"'(# TYPE ,).400_#_,).400!o..%
PARAMETERS= pa_.a TYPE ,!&"'(#/.a"d%
START/OF/SELECTION%
2 A)t&o%#t'1C&e$M:
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD pa_.a
ID BACT*TB FIELD a.#4#_d",p&a$%
CASE ,$/,-).%
< +,e ", a-#(o"@ed
W0EN 0%
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o.. FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a%
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
APPEND ;a_!&"'(# TO "#_!&"'(#%
ENDSELECT%
PERFORM .%#te/l#st USING #t/+l#(&t0
< +,e ", no# a-#(o"@ed o o#(e eo o! a-#(o"#$/.(e.9
W0EN OT0ERS%
WRITE= ? BA-#(o"#$/C(e.9 EoBF005G%
ENDCASE%
2U111111111111111111111111111111111111111111111111111111111111112
2U Fo%m 3RITE/LIST
2U111111111111111111111111111111111111111111111111111111111111112
2 te?t
21111111111111111111111111111111111111111111111111111111111111112
2 11LP/IT/FLIGHT te?t
21111111111111111111111111111111111111111111111111111111111111112
FORM .%#te/l#st USING p/#t/+l#(&t TYPE s,$!""/t/s,$!""+o$$0
DATA: .a LI@E LINE OF p/#t/+l#(&t0
LOOP AT p/#t/+l#(&t INTO .a0
>C? SAP AG BC400 #4
3RITE: * .a1$a%%#4 COLOR COL/@EY6
.a1$onn#4 COLOR COL/@EY6
.a1+l4ate COLOR COL/@EY6
.a1seatso$$6
.a1seatsma?6
.a1pe%$enta(e69N90
ENDLOOP0
ENDFORM0 5 3RITE/LIST
>C? SAP AG BC400 #5
H
SAP AG 2001
9'ecution o$ 9"ent Blocks by the ABAP -unti%e
Syste%
9"ent Block 27A8=7F=P-7-A( ,4#4T4A24DAT47#.
9"ent Block STA-T=7F=S929CT47#
Contents:
The ABAP -unti%e Syste%
>C? SAP AG BC400 #
8.2
SAP AG 2001
8escribe the e"ent=controlled processes $or
e'ecuting an ABAP progra%
<se the e"ent block 27A8=7F=P-7-A(
,4#4T4A24DAT47#.
<se the e"ent block STA-T=7F=S929CT47#
At the conclusion o$ this unit0 you &ill be able to:
The ABAP -unti%e Syste%: <nit 7b6ecti"es
>C? SAP AG BC400 "
8.3
SAP AG 2001
Possible 9le%ents in an ABAP Progra%
9"ent
block
Subroutine
progra%
4nter$ace
9"ent
block
Screen
Process
Be$ore
7utput
Process
A$ter
4nput
2ocal type and $ield
de$initions
Selection screen
(odule
(odule
9"ent
block
9"ent
block
A) ABAP &r!5ram is a !lleti!) !$ &r!essi)5 bl!(s. A &r!essi)5 bl!( !)sists !$ &assi+e
s!ure !'e seti!)s t*at are &r!esse' seBue)tially %*e) alle'.
Pr!essi)5 bl!(s are t*e smallest u)its i) ABAP. 0*ey a))!t be s&lit- %*i* als! mea)s t*at
t*ey a))!t be )este'.
0*ere are +ari!us (i)'s !$ ABAP &r!essi)5 bl!(sE
($ent blocks are &r!essi)5 bl!(s t*at are alle' by t*e ABAP ru)time system
%*e)e+er t*e res&eti+e e+e)t is i)itiate'. Su* e+e)ts a) be i)itiate' by t*e ABAP ru)time
system itsel$ !r by t*e user.
0ubroutnes are &r!essi)5 bl!(s t*at are alle' by ABAP stateme)ts. 0*e 'e+el!&er
!)tr!ls subr!uti)es.
)odules are s&eial ABAP &r!essi)5 bl!(s t*at are alle' by sree) stateme)ts.
0*ese are reBuire' $!r sree) &r!essi)5.
.*e)e+er a &r!5ram is starte'- all t*e 5l!bal 'ata !bGets !$ t*e &r!5ram are reate' i) t*e %!r(i)5
mem!ry $irst. Delarati+e ABAP stateme)ts are not !m&!)e)ts !$ ABAP &r!essi)5 bl!(sH
i)stea'- t*ey are !llete' by t*e ABAP ru)time system %*e) t*e !+erall s!ure !'e is 5e)erate'.
9!r t*e sa(e !$ larity- *!%e+er- y!u s*!ul' &lae all 'elarati+e stateme)ts t!5et*er at t*e be5i))i)5
!$ t*e s!ure !'e. 16e&ti!)s t! t*is are l!al 'elarati!)s %it*i) subr!uti)es.
>C? SAP AG BC400 3
8.4
SAP AG 2001
9'a%ple: ABAP Progra% &ith Se"eral 9"ent
Blocks and a Selection Screen
2ocal Type and Field 8e$initions
Selection screen
,generated by the
runti%e syste%.
LOAD1OF1PROGRAM0
pa/4ate 7 s'14at)m 1 E0
START1OF1SELECTION0
3RITE pa/4ate0
PARAMETERS pa/4ate LI@E s'14at)m
F DEFAULT s'14at)m H0
9"ent block
9"ent block
8e$ault settings $or
selection screen
Start o$ list creation
/) all !$ t*e &r!5rams %e *a+e see) s! $ar i) t*is !urse- !)ly !)e &r!essi)5 bl!( *as bee)
&r!5ramme' i) a''iti!) t! 'elarati+e stateme)ts. /) t*is ase- t*ere is )! )ee' t! 'elare t*e
&r!essi)5 bl!( e6&liitly. /) m!re !m&le6 &r!5rams- *!%e+er- se+eral 'i$$ere)t &r!essi)5
bl!(s are reBuire'.
0*e e6am&le i) t*e 5ra&*i !)tai)s a seleti!) sree) %it* a) i)&ut $iel' $!r a 'ate. 0*e 'ate !$
t*e same %ee('ay i) t*e &re+i!us %ee( s*!ul' a&&ear as a 'e$ault +alue.
0*e PARAMETERS stateme)t is a 'elarati+e la)5ua5e eleme)t. 0*e system reBuires a
alulati!) t! &reset t*e 'ate 'y)amially. 0*e 3(*A14T a''iti!) t! t*e PARAMETERS
stateme)t e)sures t*at t*e 'ata !bGet is $ille' %it* a 'e$ault +alue. 0*e ABAP ru)time system
$ills t*e ,$/da#-m $iel' %it* t*e urre)t 'ate at t*e start !$ t*e &r!5ram.
0! *a)5e +ariables at run tme- t*ere$!re- y!u must &r!5ram a &r!essi)5 bl!(. Beause t*is
s*!ul' be &r!esse' before t*e sta)'ar' seleti!) sree) is tra)smitte'- use t*e res&eti+e e+e)t
bl!( alle' LOAD1OF1PROGRAM.
;se t*e sta)'ar' e+e)t bl!(- START1OF1SELECTION6 t! reate t*e list
>C? SAP AG BC400 4
8.5
SAP AG 2001
Sa%ple Progra% -unti%e Beha"ior


ABAP runti%e syste%
ABAP progra%
LOAD1OF1PROGRAM0
pa/4ate 7 s'14at)m 1 E0
START1OF1SELECTION0
3RITE pa/4ate0
Progra%
start
Ti%e
2ist
bu$$er
$or
basic list
paCdate
+///+22)
@@@
/) t*e $l!% 'ia5ram i) t*e 5ra&*i- y!u a) easily $!ll!% t*e seBue)e !$ &r!essi)5 ste&s by t*e
ABAP ru)time system. 1+e)t bl!(s are alle' i) a f"ed se.uence 'esi5)e' $!r list &r!essi)5E
0*e $irst e+e)t bl!( t! be alle' is LOAD1OF1PROGRAM. /) t*e e6am&le- t*e 'ate DA %ee(
a5!D is alulate' a)' &lae' i)t! t*e pa_da#e i)&ut $iel'. Ne6t t*e system se)'s t*e seleti!)
sree) %it* t*is )e% +alue t! t*e &rese)tati!) ser+er. 0*e user a) *a)5e t*e +alue.
Ne6t t*e seleti!) sree) is se)t t! t*e &rese)tati!) ser+er.
A$ter t*e user lea+es t*e seleti!) sree)- START1OF1SELECTION is alle'.
/$ t*e START/OF/SELECTION e+e)t bl!( !)tai)s t*e ABAP stateme)ts 3RITE8 S@IP !r
ULINE9 a list bu$$er is $ille'.
As s!!) as START/OF/SELECTION is &r!esse' !m&letely- t*e list bu$$er is se)t t! t*e
&rese)tati!) ser+er as a list.
B!t* e+e)ts &rese)te' *ere are i)itiate' by t*e ABAP ru)time system e"actly once ea* time a
&r!5ram is e6eute'.
>C? SAP AG BC400 5
8.6
SAP AG 2001
9"ent Block Characteristics
PARAMETERS pa/4ate LI@E s'14at)m
F DEFAULT s'14at)m H0
LOAD1OF1PROGRAM0
pa/4ate 7 s'14at)m 1 E0
START1OF1SELECTION0
3RITE pa/4ate0
LOAD1OF1PROGRAM0 LOAD1OF1PROGRAM0
START1OF1SELECTION0 START1OF1SELECTION0
ABAP progra%
4ntroduced by an
e"ent key&ord
9nded by the ne't
processing block
9"ent block $or
di$$erent tasks
Processing se5uence
$or e"ent blocks is
deter%ined by the
runti%e syste% =
9"ent block se5uence
in source code
uni%portant
Standard e"ent block
in e'ecutable progra%:
A) e+e)t bl!( is i)tr!'ue' %it* a) e$ent key#ord. /t e)'s im&liitly %*e) t*e )e6t &r!essi)5
bl!( starts.
1+e)t bl!(s are alle' by t*e ABAP ru)time system. 0*ere$!re- t*e seBue)e i) %*i* t*e e+e)t
bl!(s are %ritte) i) t*e &r!5ram is u)im&!rta)t.
LOAD1OF1PROGRAM is t*e $irst e+e)t bl!( alle' i) all ABAP &r!5ram ty&es. 0*is e+e)t bl!(
all!%s y!u t! set 'e$ault +alues t*at a) !)ly be 'etermi)e' at ru)time.
9!r !m&atibility reas!)s- t*e e+e)t bl!( INITIALI=ATION is a+ailable as a) alter)ati+e.
<!%e+er- it is a+ailable $!r e6eutable &r!5rams !)ly.
START1OF1SELECTION is t*e $irst e+e)t bl!( $!r reati)5 a list. /t is alle' by t*e ABAP ru)time
system as s!!) as y!u lea+e t*e sta)'ar' seleti!) sree). /t is a+ailable $!r e6eutable &r!5rams
!)ly.
/) e6eutable &r!5rams- a''iti!)al e+e)t bl!(s are a+ailable $!r 'i$$ere)t tas(s a)' are 'esi5)e' $!r
reati)5 lists. @!u a) !btai) a !m&lete list !$ e+e)t bl!(s $r!m t*e ABAP '!ume)tati!)E *!!se
ABAP Overview ABAP 2 Overview Dia'rams "lassification of 0eywor!s by Type Event
keywor!s.
>C? SAP AG BC400 6
8.7
SAP AG 2001
8escribe the e"ent=controlled processes $or
e'ecuting an ABAP progra%
<se the e"ent block 27A8=7F=P-7-A(
,4#4T4A24DAT47#.
<se the e"ent block STA-T=7F=S929CT47#
Aou are no& able to:
The ABAP -unti%e Syste%: <nit Su%%ary
>C? SAP AG BC400 A
/
SAP AG 2001
2ist attributes and strengths
Basic list
2ist e"ents
4nteracti"e lists
9'a%ple &ith synta': 8etail list
Contents:
<ser 8ialog 2ist
>C? SAP AG BC400 #
9.2
SAP AG 2001
8escribe list attributes and strengths
Write a progra% that displays the detail o$ a
speci$ic line $ro% your basic list to an interacti"e
list &hene"er the user double=clicks that
particular line
9'plain the runti%e beha"ior o$ your progra%
during the AT 24#9=S929CT47# e"ent
At the conclusion o$ this unit0 you &ill be able to:
<ser 8ialog 2ist: <nit 7b6ecti"es
>C? SAP AG BC400 "
9.3
SAP AG 2001
For%atted For%atted
output: output:
Print Print
For%atted output: For%atted output:
CA 48 P-4C9
AA 2*02 2400
AA 2*02 2)00

Total 1H00
Screen Screen 8isplay language= 8isplay language=
speci$ic te'ts in logon speci$ic te'ts in logon
language language
2ist Attributes
According to $i'ed According to $i'ed
user settings user settings
D""<"VD<
"V*D<*D""<
A%ounts according A%ounts according
to their currency to their currency
2engths according 2engths according
to their unit to their unit
8ate 8ate
0*e mai) &ur&!se !$ a list is t! 'is&lay 'ata %*ile i)+!l+i)5 a mi)imum am!u)t !$ &r!5rammi)5.
S&eial busi)ess 'ata reBuireme)ts are ta(e) i)t! a!u)tE
3ists are la)5ua5e:i)'e&e)'e)t. 0e6ts a)' *ea'ers a&&ear i) t*e l!5!) la)5ua5e %*e)e+er a
tra)slati!) is a+ailable.
3ists a) 'is&lay m!)etary +alues i) )umer!us urre)ies.
0*e $!ll!%i)5 !&ti!)s are a+ailable t! t*e user $!r listsE
Dis&layi)5 !) sree)sE y!u a) a'' !l!rs a)' i!)s
Pri)ti)5
Publis*i)5 !) /)ter)et !r i)tra)etE 0*e system aut!matially !)+erts lists t! <0M3.
Sa+i)5E @!u a) sa+e lists %it*i) t*e R/3 System as %ell as !utsi'e $!r $urt*er &r!essi)5- $!r
e6am&le- usi)5 s&rea's*eet &r!5rams
>C? SAP AG BC400 3
9.4
SAP AG 2001
Back > 9'it > Cancel
Scroll
Print
Find ,in list.
Sa"e
:
2ist
:
Syste% !!!
Standard 2ist Functions:
0*e sta)'ar' list i)ter$ae !$$ers t*e user se+eral )a+i5ati!) $eaturesE
Ba(
16it
Ca)el
Pri)t
9i)' >i) list?
Sa+e as a $ile- i) t*e me)u- !r t! a bu$$er
Se)' t*e list i) e:mail $!rm
@!u a) use t*e 7en$ Painter t! a'Gust t*e sta)'ar' list i)ter$ae t! $it y!ur i)'i+i'ual )ee's.
>C? SAP AG BC400 4
9.5
SAP AG 2001
2ist header
Colu%n header
Sa"e
:
2ist
:
Syste% !!! Te't ele%ents
Titles>headers
Fro% &ithin the list: Fro% the ABAP 9ditor:
2ist :eaders in the 8e$ault Page :eader
1a* list a) *a+e a lst header a)' u& t! $!ur li)es !$ column headers. @!u a) use t*ese t!!ls i)
t%! %aysE
9r!m t*e ABAP 1'it!rE ;se t*e te6t eleme)t mai)te)a)e $u)ti!)s. A ruler is a+ailable.
9r!m t*e listE /$ y!u sa+e y!ur program- act$ate it- a)' t*e) e"ecute it t! reate t*e list- y!u a)
aess t*e mai)te)a)e sree) by *!!si)5 &ystem +ist +ist hea!er. 0*e mai) a'+a)ta5e !$
usi)5 t*is met*!' is t*at t*e list is still 'is&laye' !) t*e sree). 0*is ma(es it easier t! &!siti!)
!lum) *ea'ers.
0*e )e6t time y!u start t*e &r!5ram- t*e )e% *ea'ers %ill a&&ear i) t*e list aut!matially.
/$ )! *ea'er te6t is e)tere'- t*e &r!5ram title is i)serte' i) t*e *ea'er.
>C? SAP AG BC400 5
9.6
SAP AG 2001
3RITE: *<O te?t1""<6
BO s'14at)m6
*<O te?t1""D6
BO s'1)name0
Te't ele%ents
Titles>headers Titles>headers
ABAP progra%
Te't sy%bols Te't sy%bols
89 creation date
9# creation date
F- !!!
89 Anlegen 8atu%
9# Creation date
F- !!!
:
9# Created by
00+
002
2ist header
Creation date: 0+>0+>200+
Created by: WA2T9-S
(ultilingual Capability o$ 2ists
te?t1""< te?t1""<
te?t1""D te?t1""D
Ttles and headers are &art !$ t*e &r!5ramIs te6t eleme)ts. @!u a) tra)slate all te6t eleme)ts i)t!
!t*er la)5ua5es. 0*e l!5!) la)5ua5e setti)5 !) t*e l!5!) sree) 'etermi)es i) %*i* la)5ua5e te6t
eleme)ts %ill be 'is&laye'.
Te"t symbols are a)!t*er (i)' !$ te6t eleme)t. 0e6t symb!ls are te6t literals t*at a) be tra)slate'
a)' are assi5)e' t! t*e &r!5ram. 0*ey are $reBue)tly use' t! reate lists i)'e&e)'e)t !$ la)5ua5e.
@!u a) %rite te6t symb!ls i)t! y!ur &r!5ram i) eit*er !$ t*e $!ll!%i)5 %aysE
TEXT1... > is a t*ree:byte *arater stri)5?
B%%%BA...C >... is a)y te6t- is a t*ree:'i5it *arater stri)5?
9r!m t*e 1'it!r- y!u a) aess t*e mai)te)a)e sree) $!r t*e te6t symb!ls by *!!si)5 8oto
Te1t elements Te1t symbols !r by '!uble:li(i)5 t*e )umber !$ a te6t symb!l.
>C? SAP AG BC400 6
9.7
SAP AG 2001
2ists in 9'ecutable Progra%s
Progra%
start


8atabase
tables
8ata ob6ects
ABAP runti%e syste%
ABAP progra%
2ist
bu$$er
STA-T=7F=S929CT47#!
S929CT !!!
W-4T9 !!!
Ti%e
/) e6eutable &r!5rams- lists are aut!matially 'is&laye' a$ter t*eir !rres&!)'i)5 e+e)t bl!(s
*a+e bee) &r!esse'. 0*ese &r!essi)5 bl!(s must- *!%e+er- !)tai) a stateme)t t*at %rites t!
t*e list bu$$er. 0*ese are 3RITE- S@IP- a)' ULINE.
1+e)t bl!(s are alle' i) a seBue)e 'esi5)e' $!r list &r!essi)5E
Be$!re t*e seleti!) sree)E LOAD1OF1PROGRAM.
A$ter t*e user lea+es t*e seleti!) sree)E START1OF1SELECTION.
All !ut&ut $r!m t*e e+e)t bl!(s t*at reate t*e lists >*ere !)ly START/OF/SELECTION? a)'
$r!m t*e m!'ulariCati!) u)its alle' t*ere- %*i* is &r!esse' be$!re a list is se)t- is
tem&!rarily st!re' i) t*e list bu$$er.
O)e all list reati!) e+e)t bl!(s >*ere !)ly START/OF/SELECTION? *a+e bee) &r!esse'-
all 'ata $r!m t*e list bu$$er is 'is&laye' i) t*e $!rm !$ a list.
>C? SAP AG BC400 A
9.8
SAP AG 2001
Creating 8etail 2ists
Ti%e


8atabase
tables
STA-T=7F=S929CT47#!
Basic
list
bu$$er

AT 24#9=S929CT47#!
8etail
list
bu$$er
/) e6eutable &r!5rams- y!u a) use t*e e+e)t bl!( AT LINE1SELECTION t! reate 'etail
lists.
0*e ABAP ru)time system e)sures t*atE
0*e basi list is se)t a$ter t*e e+e)t bl!(s res&!)sible $!r reati)5 t*e basi list *a+e
bee) &r!esse' >$!r e6am&le- a$ter START/OF/SELECTION?. /) t*is ase- t*e system $iel'
,$/&,"nd !)tai)s t*e +alue 0.
0*e e+e)t bl!( AT LINE/SELECTION is &r!esse' usi)5 t*e $u)ti!) !'e P/CS
ea* time y!u '!uble:li( a) e)try !r *!!se a) ati!) $!r t*e system t! &er$!rm. /$ y!u are
)!t usi)5 a user:'e$i)e' status- t*is *a&&e)s aut!matially e+ery time y!u *!!se Detail list
>i!) l!!(s li(e a ma5)i$yi)5 5lass?- t*e me)u $u)ti!) "hoose- !r t*e $u)ti!) (ey 9".
0*e 'etail list is se)t a$ter t*e AT LINE/SELECTION e+e)t bl!( is &r!esse' a)'
t*e +alue !)tai)e' i) ,$/&,"nd is i)rease' by !)e.
A$ter e+ery user ati!) %it* t*e $u)ti!) !'e BACS- t*e system 'is&lays t*e list at t*e
&re+i!us 'etail le+el >t*at is- it 5!es $r!m le+el n t! n24?.
>C? SAP AG BC400 8
9.9
SAP AG 2001
Basic list
sy=lsind

sy=lsind


sy=lsind

1
2
8etail 2ists: #a"igation
0
8etail list
8etail list
Basic list
First detail list
Second detail list
0*e lists i) t*e e6am&le &r!5ram s*!ul' $u)ti!) as $!ll!%sE
0*e basi list s*!ul' 'is&lay t*e te6t Basic list a)' t*e system $iel' ,$/&,"nd.
0*e user a) )a+i5ate t! a 'etail list by usi)5 a)y !$ t*e $!ll!%i)5E
D!uble:li(i)5 !) t*e basi list
C*!!si)5 Detail list >i!) l!!(s li(e a ma5)i$yi)5 5lass? i) t*e a&&liati!) t!!lbar
C*!!si)5 a me)u $u)ti!)
;si)5 $u)ti!) (ey 9". 0*e Detail list a&&ears a)' t*e system $iel' ,$/&,"nd *as t*e +alue #.
Re&eati)5 t*is ati!) alls t*e se!)' 'etail list- %*ere system $iel' ,$/&,"nd !)tai)s t*e +alue
" i)stea' >re&rese)ti)5 t*e urre)t 'etail list le+el?.
Re&eati)5 t*is ati!) i)reases t*e ,$/&,"nd +alue by !)e e+ery time. 0*is is &!ssible u& t! t*e
t%e)tiet* 'etail list.
C*!!si)5 Back ta(es t*e user ba( !)e si)5le 'etail list le+el at a time u)til t*e basi list is
rea*e'..
>C? SAP AG BC400 8
9.10
SAP AG 2001
000
START1OF1SELECTION0
3RITE: * te?t1""< COLOR $ol/&ea4#n(6
* 9s'1ls#n496
s'1ls#n4 $olo% D0
AT LINE1SELECTION0
3RITE: * te?t1""D COLOR $ol/&ea4#n(0
ULINE0
3RITE: * 9s'1ls#n496
s'1ls#n4 $olo% !0
Te't sy%bols:
00+
002
Basic list
8etail list
Synta' 9'a%ple: Si%ple 8etail 2ist
AT LINE1SELECTION0 AT LINE1SELECTION0
A 'etail list is &r!5ramme' as $!ll!%sE
@!u reate a basi list by $illi)5 t*e basi list bu$$er at a) a&&r!&riate e+e)t bl!( >*ere START/
OF/SELECTION? usi)5 eit*er WRITE9 SKIP- !r +LINE.
;se t*e e+e)t bl!( AT LINE/SELECTION %*e) &r!5rammi)5 'etail lists. .*e)e+er y!u use
WRITE9 SKIP- !r +LINE %it* t*is e+e)t bl!(- y!u $ill t*e 'etail list bu$$er $!r t*e )e6t le+el >t*e
'etail list bu$$er %it* a le+el +alue !)e 5reater t*a) t*e le+el !) %*i* t*e user &er$!rme' t*e
ati!)?.
@!u a) &re:'etermi)e )a+i5ati!) bet%ee) 'etail lists by Bueryi)5 system $iel' ,$/&,"nd at t*e
e+e)t bl!( AT LINE/SELECTION.
>C? SAP AG BC400 #0
9.11
SAP AG 2001
A"rl. Fl"(h! Fro* ,o De$ar!"n( a!
/B 0400 FRA Frank-ur! GF> ?e; Cork 10:10:00
/B 0400 FRA Frank-ur! GF> ?e; Cork 13:30:00
...
S1 0002 S0? S"n(a$ore SF8 San Franc"sco 09:30:00

Cou ha)e chosen /B 0402
Fl"(h! a!e
19.12.2001
20.12.2001
24.12.2001
'a2.
3=0
3=0
3=0
8cc.
240
2<0
3=0
9'a%ple: 8etail 2ist
Ti%etable Ti%etable
8etail: Flights 8etail: Flights
@!u %ill )!% %rite a &r!5ram usi)5 b!t* basi lists a)' 'etail lists.
0*e basi list i) y!ur &r!5ram s*!ul' !)tai) $li5*t 'ata su* as arrier /D a)' $li5*t )umbers-
'e&arture ity a)' air&!rt- 'esti)ati!) ity a)' air&!rt- a)' 'e&arture a)' arri+al times. 0*is 'ata a)
be $!u)' i) t*e 'atabase table SP93/.
0*e user s*!ul' be able t! aess i)$!rmati!) ab!ut a)y &artiular $li5*t by '!uble:li(i)5 its
arrier /D a)' $li5*t )umber. 9li5*t 'ate a)' !u&a)y s*!ul' be 'is&laye'. 0*is 'ata a) be $!u)'
i) t*e 'atabase table S93/G<0. @!u must use t*e SP93/ (ey $iel's i) t*is 'etail list i) !r'er t! rea'
t*e a&&r!&riate 'ata i) S93/G<0. 0*e $!ll!%i)5 5ra&*is 'em!)strate *!% t*is is '!)e.
0*e e6am&le &r!5ram is SAPBC400;DDUD10A/3U3/S0 a)' it is &art !$ 'e+el!&me)t lass
BC400.
>C? SAP AG BC400 ##
9.12
SAP AG 2001
AA 00+1 IFE SF7 +3:30:00
2: 0400 F-A IFE +0:+0:00
2: 0402 F-A IFE +3:30:00
: : : : :
Bu$$ering lobal 8ata in the :ide Area
HIDE +#el4name0
SELECT $a%%#4 $onn#4
a#%p+%om a#%pto 4ept#me
FROM sp+l#
INTO CORRESPONDING FIELDS OF
.a/sp+l#0
3RITE: * .a/sp+l#1$a%%#46
.a/sp+l#1$onn#46
.a/sp+l#1a#%p+%om6
.a/sp+l#1a#%pto6
.a/sp+l#14ept#me0
: .a/sp+l#1$a%%#46
.a/sp+l#1$onn#40
ENDSELECT0
AT LINE1SELECTION0
2ine
3
3
4
4
)
)
:
Field na%e
&aCsp$li=carrid
&aCsp$li=connid
&aCsp$li=carrid
&aCsp$li=connid
&aCsp$li=carrid
&aCsp$li=connid
:
?alue
AA
00+1
2:
0400
2:
0402
:
:ide area
HIDE HIDE
1
2
3
4
%
:
Current list bu$$er
CA- 48 Fro% To 8eparting at CA- 48 Fro% To 8eparting at
) )
) )
) )
.*e) t*e e+e)t A0 3/N1:S131C0/ON is &r!esse'- a &r!5ramIs 'ata !bGets !)tai) t*e same
+alues as be$!re basi list 'is&lay. A 'etail list- *!%e+er- !$te) )ee's 'ata selete' %it*i) t*e basi
list itsel$. @!u a) use t*e </D1 area t! st!re ertai) 'ata $r!m t*e li)e t*at y!u *a+e selete' a)'
t*e) aut!matially i)sert it %*ere y!u )ee' it i) t*e !rres&!)'i)5 'ata !bGet $!r a 'etail list.
0! &re'etermi)e %*i* i)$!rmati!) is lassi$ie' by its li)e &!siti!) %*e) y!u reate a basi list- use
t*e ABAP (ey%!r' </D1 $!ll!%e' by a list !$ t*e 'ata !bGets y!u reBuire. 0*e ru)time system
aut!matially re!r's t*e )ame a)' !)te)ts !$ t*e 'ata !bGet i) relati!) t! its li)e &!siti!) i) t*e
list urre)tly bei)5 reate'.
0*e </D1 5l!balU$iel' stateme)t bu$$ers t*e !)te)t !$ t*e 5l!bal 'ata $iel' 5l!balU$iel' %it*
re$ere)e t! t*e urre)t 'is&lay li)e. @!u '! )!t *a+e t! 'is&lay t*e $iel' be$!re*a)' usi)5 t*e
.R/01 stateme)t. @!u merely *a+e t! &r!5ram t*e </D1 stateme)ts a$ter t*e last .R/01 stateme)t
i) t*e urre)t li)e.
0*e 'ata $iel' a) als! be a $lat struture.
>C? SAP AG BC400 #"
9.13
SAP AG 2001
000
AT LINE1SELECTION0
3RITE: te?t1""<6
.a/sp+l#1$a%%#46
.a/sp+l#1$onn#40
#AR 0D Fro* ,o De$ar!"n( a!
AA 001< GF> SF8 13:30:00
/B 0400 FRA GF> 10:10:00
/B 0402 FRA GF> 13:30:00
...
S1 0002 S0? SF8 09:30:00
&aCsp$li 2: 0400 @@ @@ @@ @@
Te't sy%bols:
00+ Flights $or connection
2ine Selection
AT LINE1SELECTION0 AT LINE1SELECTION0
2ine
3
3
4
4
)
)
:
+4
+4
Field na%e
&aCsp$li=carrid
&aCsp$li=connid
&aCsp$li=carrid
&aCsp$li=connid
&aCsp$li=carrid
&aCsp$li=connid
:
&aCsp$li=carrid
&aCsp$li=connid
?alue
AA
00+1
2:
0400
2:
0402
:
SF
0002
:ide area
CA- 48 Fro% To 8eparting at CA- 48 Fro% To 8eparting at
.*e) y!u selet a li)e >by &!i)ti)5 t! it $!ll!%e' by P/CS !r '!uble:li(?- t*is tri55ers t*e e+e)t
AT LINE/SELECTION.
9irst t*e +alues $!r t*is li)e bu$$ere' i) t*e </D1 area are i)serte' back nto the correspondng
global data ob,ects.
0*e) t*e system &r!esses t*e rele+a)t e+e)t bl!( i) t*e ABAP &r!5ram.
>C? SAP AG BC400 #3
9.14
SAP AG 2001
000
AT LINE1SELECTION0
IF s'1ls#n4 7 <0
3RITE: te?t1""<6
.a/sp+l#1$a%%#46
.a/sp+l#1$onn#40
SELECT +l4ate seatsma? seatso$$
FROM s+l#(&t
INTO CORRESPONDING FIELDS OF .a/s+l#(&t
3HERE $a%%#4 7 .a/sp+l#1$a%%#4
AND $onn#4 7 .a/sp+l#1$onn#40
3RITE:* .a/s+l#(&t1+l4ate6
.a/s+l#(&t1seatsma?6
.a/s+l#(&t1seatso$$0
ENDSELECT0
ENDIF0
Te't sy%bols:
00+ Flights $or connection
AT LINE1SELECTION0 AT LINE1SELECTION0
Synta' 9'a%ple: Additional 8ata $or Selected 2ine
@!u reate a 'etail list by $illi)5 t*e 'etail list bu$$er at t*e AT LINE/SELECTION e+e)t bl!(
usi)5 eit*er WRITE- SKIP- !r +LINE.
/) t*e e6am&le &r!5ram- t*e (ey $iel's !$ t*e airli)e %ill be 'is&laye'. 0*e $li5*ts a+ailable $!r t*is
airli)e i) t*e 'atabase table SFLIG0T are rea' usi)5 a SELECT l!!&.
N!te t*at t*e li)e:s&ei$i i)$!rmati!) !) t*e airli)e is !)ly a+ailable by '!uble:li(i)5 i) t*e 'ata
!bGets i$ t*e rele+a)t 'ata !bGets *a+e bee) &lae' i) t*e </D1 area %*e) t*e basi list %as
reate'.
>C? SAP AG BC400 #4
9.15
SAP AG 2001
8escribe list attributes and strengths
Write a progra% that displays the details o$ a
speci$ic line $ro% your basic list to an interacti"e
list &hene"er the user double=clicks that
particular line
9'plain the runti%e beha"ior o$ your progra%
during the AT 24#9=S929CT47# e"ent
Aou are no& able to:
<ser 8ialog 2ist: <nit Su%%ary
>C? SAP AG BC400 #5
9.166ser 'ia%o* +ist E$ercises
1nt: 1ser 3alog 4st
Topc: 3etal 4sts
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create a 'etail list i) a &r!5ram
16te)' t*e &r!5ram =C!""/>>/SELECT/SFLIGHT !r t*e
!rres&!)'i)5 m!'el s!luti!) as $!ll!%sE
O)e t*e user *as selete' a $li5*t !) t*e basi list >'!uble:li( !r 9" !)
t*e rele+a)t list li)e?- 'is&lay a 'etail list !)tai)i)5 all !$ t*e b!!(i)5s
$!r t*e selete' $li5*t.
0em&lateE =C!""/>>/SELECT/SFLIGHT !r
SAPBC400DDS_A+T0ORITY_C0ECK
Program: =C!""/>>/DETAIL/LIST
)odel soluton: SAPC!""UDS/DETAIL/LIST
#:# C!&y y!ur &r!5ram =C!""/>>/SELECT/SFLIGHT !r t*e !rres&!)'i)5
tem&late SAPC!""DDS/AUTHORITY/CHEC@ t! t*e )e% &r!5ram
=C!""/>>/DETAIL/LIST.
#:" Ma(e sure t*at t*e (ey $iel's !$ t*e 'atabase table SFLIGHT are a+ailable t! y!u
$!r reati)5 t*e 'etail list %*e) t*e user selets a $li5*t $r!m t*e basi list >'!uble:
li( !r 9" !) t*e !rres&!)'i)5 list li)e?.
#:3 A'' t*e AT LINE1SELECTION e+e)t t! y!ur &r!5ram t! all!% y!u t! !)strut a
'etail list.
#:4 /) t*e $irst li)e !$ t*e 'etail list- 'is&lay (ey i)$!rmati!) $r!m t*e selete' $li5*t.
;)'er t*is li)e- 'is&lay a *!riC!)tal li)e a)' a bla)( li)e.
#:5 Rea' all !$ t*e b!!(i)5s $r!m 'atabase table SOO@ $!r t*e selete' $li5*t. Ma(e
sure t*at y!u rea' !)ly t*!se $iel's $r!m t*e 'atabase table t*at y!u %a)t t! 'is&lay
i) t*e list. Dis&lay t*e $!ll!%i)5 $iel's $r!m t*e 'atabase table SOO@ !) t*e 'etail
listE
OO@ID6
CUSTOMID6
CUSTTYPE
CLASS6
>C? SAP AG BC400 #6
ORDER/DATE6
SMO@ER6
CANCELLED0
#:6 +ptonal: Dis&lay t*e $iel's LOCCURAM a)' LOCCUR@EY !) t*e 'etail listE
1)sure t*at t*e urre)y am!u)t LOCCURAM is 'is&laye' %it* t*e a&&r!&riate
$!rmatti)5 $!r t*e urre)y LOCCUR@EY. ;se t*e a''iti!) CURRENCY
K$)%%en$'/Me'L i) t*e 3RITE stateme)t.
("ampleE
WRITE= ;a_,!&"'(#/p".e C+RRENCY ;a_,!&"'(#/.-en.$8
;a_,!&"'(#/.-en.$%
#:A +ptonal: Dis&lay t*e OO@ID $iel' i) t*e !l!r COL/@EY.
>C? SAP AG BC400 #A
9.176ser 'ia%o* +ist So%&tions
1nt: 1ser 3alog 4st
Topc: 3etal 4sts
)odel soluton #thout optonal e"ercses: SAPC!""UDS/DETAIL/LIST
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DETAIL_LIST <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_de#a"&_&",#%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B%
DATA= ;a_!&"'(# TYPE ,).400!o..8
.a/s,ooM TYPE s,ooM0
PARAMETERS= pa_.a TYPE ,_.a_"d%
START/OF/SELECTION%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD pa_.a
ID BACT*TB FIELD a.#4#_d",p&a$%
CASE ,$/,-).%
W0EN 0%
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o.. FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a%
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
WRITE= ? ;a_!&"'(#/.a"d8
;a_!&"'(#/.onn"d8
;a_!&"'(#/!&da#e8
;a_!&"'(#/,ea#,o..8
;a_!&"'(#/,ea#,ma18
;a_!&"'(#/pe.en#a'e8BCB%
2 H#4e Me' +#el4 val)es $o%%espon4#n( to t&e a$t)al l#ne
HIDE: .a/+l#(&t1$a%%#46 .a/+l#(&t1$onn#46
.a/+l#(&t1+l4ate0
ENDSELECT%
W0EN OT0ERS%
WRITE= ? BA-#(o"#$/C(e.9 EoBF005G%
ENDCASE%
CLEAR ;a_!&"'(#%
2 P%o(%am $ont#n)es &e%e6 #+ a l#ne #s sele$te4 on ,as#$ l#st
AT LINE1SELECTION0
IF s'1ls#n4 7 <0
>C? SAP AG BC400 #8
2 @e' +#el4s t%anspo%te4 ,a$M +%om &#4e a%ea to AAP 4ata o,-e$ts
3RITE: * .a/+l#(&t1$a%%#46
.a/+l#(&t1$onn#46
.a/+l#(&t1+l4ate0
ULINE0
S@IP0
2 Sele$t#on o+ ,ooM#n(s6 .&#$& 4epen4 on sele$te4 +l#(&t
SELECT ,ooM#4 $)stom#4 $)stt'pe $lass o%4e%/4ate
smoMe% $an$elle4 lo$$)%am lo$$)%Me'
FROM s,ooM INTO CORRESPONDING FIELDS OF .a/s,ooM
3HERE $a%%#4 7 .a/+l#(&t1$a%%#4
AND $onn#4 7 .a/+l#(&t1$onn#4
AND +l4ate 7 .a/+l#(&t1+l4ate0
2 C%eat#on o+ 4eta#l l#st
3RITE: * .a/s,ooM1,ooM#46
.a/s,ooM1$)stom#46
.a/s,ooM1$)stt'pe6
.a/s,ooM1$lass6
.a/s,ooM1o%4e%/4ate6
.a/s,ooM1smoMe%6
.a/s,ooM1$an$elle40
ENDSELECT0
ENDIF0
CLEAR ;a_!&"'(#%
>C? SAP AG BC400 #8
)odel soluton #th optonal e"ercses: SAPC!""UDS/DETAIL/LIST<
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DETAIL_LIST5 <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_de#a"&_&",#5%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B%
DATA= ;a_!&"'(# TYPE ,).400!o..8
;a_,)oo9 TYPE ,)oo9%
PARAMETERS= pa_.a TYPE ,_.a_"d%
START/OF/SELECTION%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD pa_.a
ID BACT*TB FIELD a.#4#_d",p&a$%
CASE ,$/,-).%
W0EN 0%
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o.. FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a%
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
WRITE= ? ;a_!&"'(#/.a"d8
;a_!&"'(#/.onn"d8
;a_!&"'(#/!&da#e8
;a_!&"'(#/,ea#,o..8
;a_!&"'(#/,ea#,ma18
;a_!&"'(#/pe.en#a'e8BCB%
2 H#4e Me' +#el4 val)es $o%%espon4#n( to t&e a$t)al l#ne
0IDE= ;a_!&"'(#/.a"d8 ;a_!&"'(#/.onn"d8 ;a_!&"'(#/!&da#e%
ENDSELECT%
W0EN OT0ERS%
WRITE= ? BA-#(o"#$/C(e.9 EoBF005G%
ENDCASE%
CLEAR ;a_!&"'(#%
2 P%o(%am $ont#n)es &e%e6 #+ a l#ne #s sele$te4 on ,as#$ l#st
AT LINE/SELECTION%
IF ,$/&,"nd > 5%
2 @e' +#el4s t%anspo%te4 ,a$M +%om &#4e a%ea to AAP 4ata o,-e$ts
WRITE= ? ;a_!&"'(#/.a"d8 ;a_!&"'(#/.onn"d8 ;a_!&"'(#/!&da#e%
+LINE%
SKIP%
2 Sele$t#on o+ ,ooM#n(s6 .&#$& 4epen4 on sele$te4 +l#(&t
SELECT )oo9"d .-,#om"d .-,##$pe .&a,, ode_da#e
,mo9e .an.e&&ed &o..-am &o..-9e$
FROM ,)oo9 INTO CORRESPONDING FIELDS OF ;a_,)oo9
W0ERE .a"d > ;a_!&"'(#/.a"d
AND .onn"d > ;a_!&"'(#/.onn"d
AND !&da#e > ;a_!&"'(#/!&da#e%
2 C%eat#on o+ 4eta#l l#st
WRITE= ? ;a_,)oo9/)oo9"d COLOR COL/@EY8
;a_,)oo9/.-,#om"d8
;a_,)oo9/.-,##$pe8
>C? SAP AG BC400 "0
;a_,)oo9/.&a,,8
;a_,)oo9/ode_da#e8
;a_,)oo9/,mo9e8
;a_,)oo9/.an.e&&ed8
.a/s,ooM1lo$$)%am CURRENCY .a/s,ooM1lo$$)%Me'6
.a/s,ooM1lo$$)%Me'0
ENDSELECT%
ENDIF%
CLEAR ;a_!&"'(#%
>C? SAP AG BC400 "#
+0
SAP AG 2001
Selection screen attributes and strengths
8e$ining selection screens
9"aluating user input to restrict database selection
Selection screen e"ents
Synta' e'a%ples: Additional input checks &ith error
dialog
Contents:
<ser 8ialog Selection Screen
>C? SAP AG BC400 #
10.2
SAP AG 2001
8escribe selection screen attributes and
strengths
Write a progra% that allo&s you to enter inter"als
on a selection screen and that can be used to
restrict the nu%ber o$ data records retrie"ed $ro%
the database
Write a progra% that contains additional input
checks $or the selection screen and returns to the
selection screen i$ an error occurs
At the conclusion o$ this unit0 you &ill be able to:
<ser 8ialog 2ist: <nit 7b6ecti"es
>C? SAP AG BC400 "
10.3
SAP AG 2001
<se o$ Selection Screens


8atabase
table
ABAP
processing
block
ABAP runti%e syste%
ABAP progra%
Selection criteria
Seleti!) sree)s all!% users t! e)ter seleti!) riteria reBuire' by t*e &r!5ram $!r it t! !)ti)ue.
9!r e6am&le- i$ y!u reate a list !)tai)i)5 'ata $r!m a +ery lar5e 'atabase table- y!u a) use a
seleti!) sree) t! restrit t*e am!u)t !$ 'ata t*at is selete'. At ru)time- t*e user a) selet i)ter+als
$!r !)e !$ t*e (ey $iel's- a)' !)ly 'ata t*at !rres&!)'s t! t*is seleti!) is rea' $r!m t*e 'atabase
a)' 'is&laye' i) t*e list. 0*is !)si'erably re'ues t*e l!a' !) t*e 'atabase a)' )et%!r(.
>C? SAP AG BC400 3
10.4
SAP AG 2001
7"er"ie&: Selection Screen Attributes
Selection Screen Attributes
Selection Screen Attributes
Single Fields ,PA-A(9T9-S.
Single Fields ,PA-A(9T9-S.
?alue Sets ,S929CT=7PT47#S.
?alue Sets ,S929CT=7PT47#S.
Selection Screen 9"ents
Selection Screen 9"ents
>C? SAP AG BC400 4
10.5
SAP AG 2001
Dalue Dalue en!r& en!r&
'ul!"l"n(ual #a$ac"!& 'ul!"l"n(ual #a$ac"!&
Dar"an!s Dar"an!s
Poss"ble Poss"ble
en!r"es en!r"es
hel$ hel$
,&$e checks ,&$e checks
Selection Screen Attributes
0n$u! hel$ 0n$u! hel$
@
Seleti!) sree)s are i)&ut mas(s $!r +alue sets t*at restrit t*e am!u)t !$ 'ata rea' $r!m t*e
'atabase. 0*e $!ll!%i)5 &!ssibilities are a+ailable t! t*e userE
1)tries i) si)5le $iel's
Comple" entresE /)ter+als- !&erati!)s- &atter)s
Sa+i)5 $ille' seleti!) $iel's as $arants
/)&ut *el& a)' sear* *el&s are a+ailable by *!!si)5 t*e 94 $u)ti!) (ey !r t*e &!ssible e)tries
&us*butt!)
@!u a) tra)slate selecton te"ts i)t! !t*er la)5ua5es s! t*at t*ey are t*e) 'is&laye' i) t*e la)5ua5e
i) %*i* t*e user is l!55e' !).
0*e system *e(s t*e ty&eE /$ y!u e)ter a +alue %it* a) i)!rret ty&e- t*e system 'is&lays a) err!r
messa5e a)' ma(es t*e $iel' rea'y $!r )e% i)&ut.
>C? SAP AG BC400 5
10.6
SAP AG 2001
SELECT1OPTIONS 000
PARAMETERS 000
Single "alue
reater than or e5ual

reater than
2ess than
#ot e5ual
2ess than or e5ual
9'clude $ro% selection
8eparture city
Airline 2:
Select
Airline
(ultiple single "alues
4nter"als
Single "alue e'clusion
4nter"al e'clusion
9ntering ?alue Sets
to
(aintain selection options
Seleti!) sree)s all!% y!u t! 'e$i)e seleti!) !&ti!)s $!r !m&le6 e)tries as %ell as sim&le i)&ut
$iel's.
Setti)5 seleti!) !&ti!)s
1)teri)5 multi&le +alues !r i)ter+als
De$i)i)5 a +alue set t*at is )!t t! be selete' a)' is t! be subtrate' $r!m t*e +alue set t! be
selete' at t*e e)'.
1+ery seleti!) sree) !)tai)s a) i)$!rmati!) i!). C*!!se t*is i!) t! 'is&lay a''iti!)al
i)$!rmati!).
>C? SAP AG BC400 6
10.7
SAP AG 2001
<sing the Se%antic 4n$or%ation o$ lobal Types
Selection screen
Airline
lobal types
H Field label
H 4nput help
H Search help TSearch helpU
8ata ele%ent 8ata ele%ent
Structure Structure
ABAP progra%
PARAMETERS pa/$a%% TYPE sp+l#1$a%%#40
H Technical type
Se%antic
in$or%ation
Technical
in$or%ation:
For%atting
rules
/$ a) i)&ut $iel' is ty&e' %it* a data element- t*e $!ll!%i)5 a''iti!)al sema)ti i)$!rmati!) is
a+ailableE
@!u a) use a feld name as a seleti!) te6t
2nput help >9# *el&? $r!m t*e 'ata eleme)t is a+ailable aut!matially
Possble entres help >94 *el&? is a+ailable aut!matially- &r!+i'e' t*e 'ata eleme)t *as bee)
li)(e' %it* a sear* *el&. A sear* *el& is a sta)'al!)e !bGet 'e$i)e' i) t*e Diti!)ary- %*i*
!)tr!ls t*e 'ial!5 %it* t*e user a)' 'ata retrie+al $!r t*e &!ssible e)tries *el&.
/$ a) i)&ut $iel' is ty&e' %it* a structure feld t*at uses a 'ata eleme)t- t*e $!ll!%i)5 sema)ti
i)$!rmati!) is a+ailableE
*eld names a)' nput help >9# *el&? are !&ie' $r!m t*e 'ata eleme)t t*at *as bee) use' t! ty&e
t*e Diti!)ary struture $iel'.
/$ a struture $iel' is !u&le' %it* a sear* *el&- t*e) t*is is t*e sear* *el& t*at is use' $!r t*e
possble entres help >94 *el&? : t*at is- it !bsures t*e 'ata eleme)t sear* *el&. /$ t*ere is )!
sear* *el& !u&le' %it* t*e struture $iel'- t*e system uses t*e 'ata eleme)t sear* *el&.
Bear i) mi)' t*at t*e 5l!bal ty&e y!u *!!se t! &r!+i'e a ty&e $!r a) i)&ut $iel' a$$ets t*e sema)ti
i)$!rmati!) a+ailable t! t*e user.
9!r m!re i)$!rmati!)- re$er t! t*e !)li)e '!ume)tati!) $!r t*e ABAP Diti!)ary.
>C? SAP AG BC400 A
10.8
SAP AG 2001
Te't ele%ents
Titles>headers
ABAP progra%
Te't sy%bols
S7CCA--
PACC4TA
Selection te'ts
89
9# Airline
89
9# 8eparture city
(ultilingual capacity (ultilingual capacity
000
SELECT1OPTIONS so/$a%% FOR 000
PARAMETERS pa/$#t' TYPE 000
Selection Te'ts
8eparture city
Airline 2: to
8ictionary re$erence
Source code
O) t*e seleti!) sree)- t*e $iel' )ames a&&ear as te6t )e6t t! t*e i)&ut $iel's. <!%e+er- y!u a)
re&lae t*ese %it* seleti!) te6ts- %*i* y!u a) t*e) tra)slate i)t! a)y $urt*er la)5ua5es y!u
reBuire. Seleti!) te6ts are 'is&laye' i) t*e userIs l!5!) la)5ua5e.
/$ t*e i)&ut $iel' is ty&e' 'iretly !r i)'iretly %it* a 'ata eleme)t- y!u a) !&y t*e $iel' )ame $r!m
!)e !$ t*e te6ts st!re' i) t*e Diti!)ary.
>C? SAP AG BC400 8
10.9
SAP AG 2001
?ariants
Create a "ariant:
H Fill out the selection screen
H Sa"e as a "ariant
H 9nter a "ariant na%e
H (eaning: 9nter a descripti"e short te't
H Aou can also choose other attributes
Create a "ariant:
Create a "ariant:
H Start the progra%

H Choose the icon on the selection screen

H Choose a "ariant by na%e
H The syste% copies the "alues to the input $ields
<se the "ariant:
8eparture city
Airline 2: to
/$ y!u %a)t t! sa+e t*e +alues >!r s!me !$ t*e +alues? !) a seleti!) sree) t*at y!u *a+e $ille' !ut-
y!u a) '! s! by reati)5 a +aria)t. .*e) y!u start t*e &r!5ram a5ai) later- y!u a) 5et t*ese +alues
$r!m t*e +aria)t a)' 'is&lay t*em i) t*e seleti!) sree).
@!u a) 'e$i)e a)' sa+e +aria)ts $!r a)y &r!5ram t*at !)tai)s a seleti!) sree). @!u '! t*is by
starti)5 t*e &r!5ram a)' t*e) reati)5 a +aria)t by *!!si)5 8oto 5ariants &ave as variant.
7aria)ts all!% y!u t! tail!r seleti!) sree)s t! suit y!ur )ee's. @!u a)E
Preassi5) +alues $!r i)&ut $iel's
<i'e i)&ut $iel's
A si)5le +aria)t a) re$er t! m!re t*a) !)e seleti!) sree) i) t*e same &r!5ram.
7aria)ts are lie)t:s&ei$i.
1+ery seleti!) sree) !)tai)s a) i)$!rmati!) i!). C*!!se t*is i!) t! 'is&lay a''iti!)al
i)$!rmati!).
>C? SAP AG BC400 8
10.10
SAP AG 2001
Single Fields ,PA-A(9T9-S.
Selection Screen Attributes
Selection Screen Attributes
Single Fields ,PA-A(9T9-S.
Single Fields ,PA-A(9T9-S.
?alue Sets ,S929CT=7PT47#S.
?alue Sets ,S929CT=7PT47#S.
Selection Screen 9"ents
Selection Screen 9"ents
>C? SAP AG BC400 #0
10.11
SAP AG 2001
9$$ect o$ the PA-A(9T9-S State%ent
PA-A(9T9-S paCcar
TAP9 sCcarrCid!
ABAP progra%
PARAMETERS PARAMETERS
paCcar
8eclarati"e state%ents
Selection
screen
-e$erence to
ABAP 8ictionary
SCCA--C48
/) a) e6eutable &r!5ram- a si)5le PARAMETERS stateme)t is su$$iie)t t! 5e)erate a sta)'ar'
seleti!) sree).
0*e PARAMETERS Lname3 TYPE 2#$pename3 stateme)t a)' t*e PARAMETERS
2name3 LIKE Kda#a_o)He.#3 stateme)t b!t* 5e)erate a) eleme)tary i)&ut $iel' !) t*e
seleti!) sree)- a)' a 'ata !bGet %it* t*e same ty&e.
/$ t*e user e)ters a +alue a)' *!!ses E1ec$te- t*at +alue is &lae' i) t*e i)ter)al 'ata !bGet L)ameM
i) t*e &r!5ram. 0*e system &ermits !)ly e)tries %it* t*e !rret ty&e.
>C? SAP AG BC400 ##
10.12
SAP AG 2001
-unti%e Beha"ior and 8ata Transport: Para%eters


ABAP runti%e syste%
ABAP progra%
ABAP
processing
block
Ti%e
Selection
screen
8escription o$
selection screen
paCcar
O)e t*e LOAD1OF1PROGRAM e+e)t bl!( *as bee) &r!esse'- t*e seleti!) sree) is se)t t! t*e
&rese)tati!) ser+er. 0*e ru)time system tra)s&!rts t*e 'ata !bGet +alues t*at are 'e$i)e' usi)5
PARAMETERS t! t*e seleti!) sree) i)&ut $iel's !$ t*e same )ame.
0*e user a) t*e) *a)5e t*e +alues i) t*e i)&ut $iel's. /$ t*e user t*e) li(s !) t*e E1ec$te
$u)ti!)- t*e i)&ut $iel' +alues are tra)s&!rte' t! t*e &r!5ram 'ata !bGets %it* t*e same )ame a)'
a) be e+aluate' i) t*e ABAP &r!essi)5 bl!(s.
>C? SAP AG BC400 #"
10.13
SAP AG 2001
<sing Para%eters When Accessing the 8atabase
REPORT 000
DATA .a/sp+l# TYPE sp+l#0
PARAMETERS pa/$a% TYPE s/$a%%/#40
000
SELECT $a%%#4 $onn#4 $#t'+%om $#t'to 000
FROM sp+l#
INTO CORRESPONDING FIELDS OF .a/sp+l#
3HERE $a%%#4 7 pa/$a% 0
3RITE: * .a/sp+l#1$a%%#46 .a/sp+l#1$onn#46
.a/sp+l#1+l4ate6 000 0
ENDSELECT 0
3HERE 3HERE $a%%#4 $a%%#4 7 7 pa pa/ /$a% $a%
SELECT SELECT
ENDSELECT ENDSELECT
/$ y!u *a+e use' t*e PARAMETERS stateme)t t! &r!5ram a) i)&ut $iel' as a (ey $iel' $!r a 'atabase
table- y!u a) use a 3HERE lause at t*e SELECT stateme)t t! limit 'ata seleti!) t! t*is +alue.
/) t*e e6am&le ab!+e !)ly t*!se 'ata re!r's are rea' $r!m 'atabase table SPFLI %*!se (ey $iel'
CARRID *as t*e same +alue as is !)tai)e' i) 'ata !bGet pa/$a% at ru)time.
>C? SAP AG BC400 #3
10.14
SAP AG 2001
?alue Sets ,S929CT=7PT47#S.
Selection Screen Attributes
Selection Screen Attributes
Single Fields ,PA-A(9T9-S.
Single Fields ,PA-A(9T9-S.
?alue Sets ,S929CT=7PT47#S.
?alue Sets ,S929CT=7PT47#S.
Selection Screen 9"ents
Selection Screen 9"ents
>C? SAP AG BC400 #4
10.15
SAP AG 2001
9$$ect o$ the S929CT=7PT47#S State%ent
ABAP progra%
soCcarr
Selection
screen
gdCcarrid
8ATA gdCcarrid TAP9 sCcarrCid!
S929CT=7PT47#S soCcarr
F7- gdCcarrid!
8eclarati"e state%ents
SELECT1OPTIONS SELECT1OPTIONS
sign lo& high
7ption
-e$erence to
ABAP 8ictionary
(4 (4
SCCA--C48
@!u use t*e SELECT1OPTIONS )ame FOR 'ataU!bGet stateme)t t! 'e$i)e seleti!) !&ti!)sE 0%!
i)&ut $iel's %it* t*e same ty&e as t*e 'ata !bGet a&&ear !) t*e seleti!) sree)- all!%i)5 y!u t!
e)ter i)ter+al limits. A''iti!)ally- a butt!) a&&ears t*at all!%s y!u t! realiCe !m&le6 set limits.
0*e stateme)t als! 'elares a) i)ter)al table )ame %it*i) t*e &r!5ram- %it* t*e $!ll!%i)5 $!ur
!lum)sE
s#(nE 0*is $iel' 'esi5)ates %*et*er t*e +alue !r i)ter+al s*!ul' be i)lu'e' >2? i) !r e6lu'e'
>(? $r!m t*e seleti!).
opt#on $!r t*e !&erat!r >T- ...?E 9!r a list !$ &!ssible !&erat!rs- re$er t! t*e (ey%!r'
'!ume)tati!) $!r t*e SELECT1OPTIONS stateme)t.
lo.E 0*is $iel' !)tai)s t*e l!%er limit !$ a) i)ter+al !r si)5le +alue.
&#(&E 0*is $iel' !)tai)s t*e u&&er limit !$ a) i)ter+al.
0*is seleti!) table )ame al%ays re$ers t! a 'ata !bGet t*at *as alrea'y bee) 'e$i)e'. 0*e 'ata
!bGet is use' as a tar5et $iel' 'uri)5 'atabase seleti!)- %*ile t*e seleti!) table is a set !$ &!ssible
+alues. 9!r t*is reas!) a s&eial +ersi!) !$ t*e 3HERE lause e6ists $!r 'atabase seleti!). /t
'etermi)es %*et*er !r )!t t*e 'atabase !)tai)s t*e !rres&!)'i)5 $iel' %it*i) t*e $alue set.
N!teE
Similarly- a) i)lusi!) test is als! 'e$i)e' $!r t*e IF stateme)t.
>C? SAP AG BC400 #5
10.16
SAP AG 2001
-unti%e Beha"ior and 8ata Transport: Selection 7ptions


ABAP runti%e syste%
ABAP progra%
ABAP
processing
block
Selection
screen
Ti%e
gdCcarrid
8escription o$
selection screen
soCcarr
/$ t*e user e)ters se+eral +alues !r i)ter+als $!r a seleti!) !&ti!) a)' *!!ses E1ec$te- t*e system
&laes t*em i) t*e i)ter)al table.
>C? SAP AG BC400 #6
10.17
SAP AG 2001
<sing Selection 7ptions When Accessing the 8atabase
REPORT 000
DATA .a/sp+l# TYPE sp+l#0
SELECT1OPTIONS so/$a%% FOR .a/sp+l#1$a%%#40
000
SELECT $a%%#4 $onn#4 $#t'+%om $#t'to 000
FROM sp+l#
INTO CORRESPONDING FIELDS OF .a/sp+l#
3HERE $a%%#4 IN so/$a%%0
3RITE: * .a/sp+l#1$a%%#46 .a/sp+l#1$onn#46
.a/sp+l#1$#t'+%om6 .a/sp+l#1$#t'to6 000 0
ENDSELECT0
3HERE 3HERE $a%%#4 $a%%#4 IN so/ IN so/$a%% $a%%
SELECT SELECT
ENDSELECT ENDSELECT
0*e ab!+e e6am&le s*!%s *!% y!u a) restrit 'atabase seleti!) t! a ertai) ra)5e usi)5 a seleti!)
table.
C!)'iti!)s i) a) i)ter)al table 'elare' usi)5 SELECT1OPTIONS are i)ter&rete' as $!ll!%sE
/$ t*e i)ter)al table is em&ty- t*e !)'iti!) $iel' IN ,e&name is al%ays true.
/$ t*e i)ter)al table !)ly !)tai)s i)lusi+e eleme)tary !)'iti!)s- su* as "_5- !r "_n- t*e
result is t*e !m&!site !)'iti!) F"_5 OR %%% OR "_n C.
/$ t*e i)ter)al table !)ly !)tai)s e6lusi+e eleme)tary !)'iti!)s su* as e5 !r em- t*e result
is t*e !m&!site !)'iti!) A NOT e_5C AND 000 AND ANOT e_mC
/$ t*e i)ter)al table !)tai)s i)lusi+e eleme)tary !)'iti!)s- su* as #/< !r #/n- a)'
e6lusi+e eleme)tary !)'iti!)s- su* as e/< !r e/m- t*e result is t*e !m&!site !)'iti!) A
"_5 OR 000 OR "_n C AND A NOT e_5 C AND 000 AND A NOT e_m C.
>C? SAP AG BC400 #A
10.18
SAP AG 2001
Selection Screen 9"ents
Selection Screen Attributes
Selection Screen Attributes
Single Fields ,PA-A(9T9-S.
Single Fields ,PA-A(9T9-S.
?alue Sets ,S929CT=7PT47#S.
?alue Sets ,S929CT=7PT47#S.
Selection Screen 9"ents
Selection Screen 9"ents
>C? SAP AG BC400 #8
10.19
SAP AG 2001
Selection Screen 9"ents
Ti%e


LOAD1OF1PROGRAM0
START1OF1SELECTION0
AT SELECTION1SCREEN0
#o
Aes
Progra%
start
/) a) e6eutable &r!5ram- t*e ABAP ru)time system 5e)erates a sta)'ar' seleti!) sree) as l!)5 as
y!u *a+e %ritte) at least !)e PARAMETERS !r SELECT1OPTIONS stateme)t. 0*e e+e)t bl!( AT
SELECTION1SCREEN bel!)5s t! t*e seleti!) sree).
0*e seleti!) sree) is se)t a$ter t*e e+e)t bl!( LOAD1OF1PROGRAM.
1a* time t*e user &resses L1)terM- a &us*butt!)- a $u)ti!) (ey- !r *!!ses a me)u $u)ti!)- t*e
system i)itially arries !ut a ty&e *e(. /$ t*e e)tries '! )!t *a+e t*e !rret ty&e- t*e system
'is&lays a) err!r messa5e- a)' ma(es t*e $iel's rea'y $!r i)&ut a5ai). .*e) t*e e)tries *a+e t*e
!rret ty&e- t*e system &r!esses t*e e+e)t bl!( AT SELECTION1SCREEN.
SubseBue)t &r!5ram $l!% 'e&e)'s !) t*e user ati!)E
/$ t*e user *!!ses L98M !r E1ec$te t*e )e6t e+e)t bl!( is alle'E i) t*is ase START1OF1
SELECTION.
/$ t*e user *!se a)y !t*er $u)ti!)- t*e seleti!) sree) is 'is&laye' a5ai).
>C? SAP AG BC400 #8
10.20
SAP AG 2001
9rror 8ialogs in AT S929CT47#=SC-99#
Ti%e
Progra%
start


LOAD1OF1PROGRAM0
START1OF1SELECTION0
#o authori;ation!!!
AT SELECTION1SCREEN0
IF 000 (essage te't
9rror %essage
9rror check
;se t*e e+e)t bl!( AT SELECTION1SCREEN i$ y!u %a)t t! &r!5ram a''iti!)al i)&ut *e(s $!r
a sta)'ar' seleti!) sree).
0*e e+e)t bl!( AT SELECTION1SCREEN is tri55ere' by ea* user ati!). /$ a) err!r 'ial!5 is
tri55ere' by t*e MESSAGE stateme)t- t*e system rese)'s t*e seleti!) sree) a)' aut!matially
resets all i)&ut $iel's t! rea'y $!r i)&ut.
9!r m!re 'etaile' i)$!rmati!) !) t*e MESSAGE stateme)t- re$er t! t*e (ey%!r' '!ume)tati!).
A''iti!)al i)$!rmati!) a) be $!u)' i) t*e (ey%!r' '!ume)tati!) $!r AT SELECTION1SCREEN.
>C? SAP AG BC400 "0
10.21
SAP AG 2001
Synta' 9'a%ple: Selection Screen Authori;ation Check
PARAMETERS pa/$a% TYPE s/$a%%/#40
2 event p%o$esse4 a+te% leav#n( t&e sele$t#on s$%een
AT SELECTION1SCREEN0
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 FIELD pa/$a%
ID 9ACT;T9 FIELD a$tvt/4#spla'0
IF s'1s),%$ NE "0
2 s&o. sele$t#on s$%een a(a#n .#t& messa(e #n stat)s ,a%
MESSAGE e"!OA,$!""C 3ITH pa/$a%0
ENDIF0
AT SELECTION1SCREEN0 AT SELECTION1SCREEN0
MESSAGE e MESSAGE e
As a) e6am&le !$ a) a''iti!)al i)&ut *e( %it* err!r 'ial!5- a) i)&ut $iel' $!r t*e airli)e /D )ee's
t! be a''e' t! t*e &r!5ram.
A) aut*!riCati!) *e( is t! be arrie' !ut !) t*e seleti!) sree).
/$ t*e user *as aut*!riCati!) t! 'is&lay t*e s&ei$ie' airli)e- t*e &r!5ram !)ti)ues.
/$ t*e user '!es )!t *a+e 'is&lay aut*!riCati!)- t*e) t*e seleti!) sree) is 'is&laye' a5ai) a)' a)
err!r messa5e a&&ears i) t*e status bar.
>C? SAP AG BC400 "#
10.22
SAP AG 2001
8escribe selection screen attributes and
strengths
Write a progra% that allo&s you to enter inter"als
on a selection screen and that can be used to
restrict the nu%ber o$ data records retrie"ed $ro%
the database
Write a progra% that contains additional input
checks $or the selection screen and returns to the
selection screen i$ an error occurs
Aou are no& able to:
<ser 8ialog 2ist: <nit Su%%ary
>C? SAP AG BC400 ""
10.23 Se%ection Screen E$ercises
1nt: 0electon 0creen
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
;se t*e ABAP stateme)t SELECT1OPTIONS t! e)ter !m&le6 +alues
!) a sta)'ar' seleti!) sree).
0a(e a!u)t !$ !m&le6 +alues i) a 'atabase seleti!).
Pr!5ram a) err!r messa5e $!r a sta)'ar' seleti!) sree)
16te)' y!ur &r!5ram =C!""/>>/DETAIL/LIST !r t*e
!rres&!)'i)5 m!'el s!luti!) as $!ll!%sE
16te)' t*e sta)'ar' seleti!) sree) t! all!% y!u t! 'e$i)e a !m&le6
+alue set $!r limiti)5 t*e !))eti)5 $li5*t )umber. 0*e +alue set is t! be
ta(e) i)t! a!u)t %*e) seleti)5 $li5*ts.
A''iti!)ally- *a)5e y!ur &r!5ram s! t*at t*e user a) !)ly &r!5ress
$r!m t*e seleti!) sree) i$ t*e aut*!riCati!) *e( $!r t*e 'esire' airli)e
is suess$ul.
Program: =C!""/>>/SEL/SCREEN
)odel soluton: SAPC!""UDS/SEL/SCREEN
Template: SAPC!""UDS/DETAIL/LIST
#:# C!&y y!ur &r!5ram =C!""/>>/DETAIL/LIST !r t*e !rres&!)'i)5 tem&late
SAPC!""UDS/DETAIL/LIST t! t*e )e% &r!5ram
=C!""/>>/SEL/SCREEN.
#:" 16te)' y!ur seleti!) sree) t! all!% t*e user t! e)ter a !m&le6 +alue ra)5e $!r
t*e flght number CONNID.
.*e) y!u are ty&i)5 t*e airli)e a)' $li5*t )umber- ma(e sure
y!u re$er t! t*e same struture s! t*at t*e sear* *el&s are
!)te6t:'e&e)'e)t.
#:3 ;se t*e !m&le6 +alue set t! restrit t*e am!u)t !$ 'ata selete' $r!m t*e 'atabase
table SFLIGHT.
#:4 C*a)5e y!ur &r!5ram s! t*at t*e user a))!t &r!5ress $r!m t*e seleti!) sree) i$
t*e aut*!riCati!) *e( a5ai)st t*e aut*!riCati!) !bGet S/CARRID $ails. /$ t*e
>C? SAP AG BC400 "3
aut*!riCati!) *e( $ails- 'is&lay a suitable err!r messa5e $r!m messa5e lass
BC400- a)' all!% t*e user t! e)ter a 'i$$ere)t +alue !) t*e seleti!) sree).
>C? SAP AG BC400 "4
10.24Se%ection Screen So%&tions
1nt: 0electon 0creen
)odel soluton: Program SAPC!""UDS/SEL/SCREEN
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_SEL_SCREEN <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_,e&_,.een%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B%
DATA= ;a_!&"'(# TYPE ,).400!o..8
;a_,)oo9 TYPE ,)oo9%
PARAMETERS= pa_.a LI@E .a/+l#(&t1$a%%#4%
2 Data +#el4 +o% $omple? %est%#$t#ons appl#e4 to $onne$t#on #4
SELECT1OPTIONS: so/$on FOR .a/+l#(&t1$onn#40
2 F#%st event p%o$esse4 a+te% leav#n( t&e sele$t#on s$%een
AT SELECTION1SCREEN0
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 FIELD pa/$a%
ID 9ACT;T9 FIELD a$tvt/4#spla'0
IF s'1s),%$ KL "0
2 Ret)%n to sele$t#on s$%een a(a#n an4 4#spla' messa(e #n stat)s 2
,a%
MESSAGE ID 9C!""9 TYPE 9E9 NUMER 9"!O9 3ITH pa/$a%0
ENDIF0
START/OF/SELECTION%
SELECT .a"d .onn"d !&da#e ,ea#,ma1 ,ea#,o.. FROM ,!&"'(#
INTO CORRESPONDING FIELDS OF ;a_!&"'(#
W0ERE .a"d > pa_.a
AND $onn#4 IN so/$on%
;a_!&"'(#/pe.en#a'e >
500 < ;a_!&"'(#/,ea#,o.. ? ;a_!&"'(#/,ea#,ma1%
WRITE= ? ;a_!&"'(#/.a"d8
;a_!&"'(#/.onn"d8
;a_!&"'(#/!&da#e8
;a_!&"'(#/,ea#,o..8
;a_!&"'(#/,ea#,ma18
;a_!&"'(#/pe.en#a'e8BCB%
0IDE= ;a_!&"'(#/.a"d8 ;a_!&"'(#/.onn"d8 ;a_!&"'(#/!&da#e%
ENDSELECT%
>C? SAP AG BC400 "5
AT LINE/SELECTION%
IF ,$/&,"nd > 5%
WRITE= ? ;a_!&"'(#/.a"d8 ;a_!&"'(#/.onn"d8 ;a_!&"'(#/!&da#e%
+LINE%
SKIP%
SELECT )oo9"d .-,#om"d .-,##$pe .&a,, ode_da#e
,mo9e .an.e&&ed &o..-am &o..-9e$
FROM ,)oo9 INTO CORRESPONDING FIELDS OF ;a_,)oo9
W0ERE .a"d > ;a_!&"'(#/.a"d
AND .onn"d > ;a_!&"'(#/.onn"d
AND !&da#e > ;a_!&"'(#/!&da#e%
WRITE= ? ;a_,)oo9/)oo9"d8
;a_,)oo9/.-,#om"d8
;a_,)oo9/.-,##$pe8
;a_,)oo9/.&a,,8
;a_,)oo9/ode_da#e8
;a_,)oo9/,mo9e8
;a_,)oo9/.an.e&&ed8
;a_,)oo9/&o..-am C+RRENCY ;a_,)oo9/&o..-9e$8
;a_,)oo9/&o..-9e$%
ENDSELECT%
ENDIF%
>C? SAP AG BC400 "6
++
SAP AG 2001
Screen Attributes and Strengths
Creating Screens
2ayout
Field Attributes
Flo& 2ogic
8ata Transport
<sing Pushbuttons and 9"aluating <ser Actions
Contents:
<ser 8ialogs: Screens
>C? SAP AG BC400 #
11.2
SAP AG 2001
At the conclusion o$ this unit0 you &ill be able to:
<ser 8ialog Screen: <nit 7b6ecti"es
8escribe screen attributes and strengths
Write a progra% that:
8isplays data on a screen
Allo&s the user to change so%e o$ that data
Allo&s the user to in$luence $urther progra%
processing using pushbuttons
>C? SAP AG BC400 "
11.3
SAP AG 2001
Fle'ible Fle'ible
progra% $lo& progra% $lo&
200
+20
+40
+00
300
Type Type checks checks
Consistency check Consistency check
during data entry during data entry
Poss"ble en!r"es Poss"ble en!r"es
hel$ hel$
0n$u! 0n$u! hel$ hel$
@
Screen Attributes
9diting 9diting
options options
Sree)s are ma'e u& !$ m!re t*a) Gust a sree) lay!ut %it* i)&ut a)' !ut&ut $iel's. 0*ey als!
*a+e t*eir !%) &r!essi)5 l!5i.
0*e $at t*at t*e ABAP Diti!)ary is i)te5rate' i) t*e system mea)s t*at aut!mati !)siste)y
*e(s $!r sree) i)&ut $iel's are &r!+i'e'. 0*ese *e(s i)lu'e ty&e *e(s- $!rei5) (ey
*e(s- a)' $i6e' +alue *e(s. All !$ t*ese *e(s are aut!matially su&&lie' %it* i)$!rmati!)
$r!m t*e ABAP Diti!)ary.
C*e(s li(e t*e !)es ab!+e a) be !m&leme)te' by !t*er &r!5ram:s&ei$i *e(s. .it* t*e
te*)iBues a+ailable $!r sree)s - y!u a) !)tr!l t*e !r'er i) %*i* *e(s are &er$!rme' a)'-
i$ err!rs !ur- ma(e t*e $iel's i)&ut rea'y a5ai)- %*ere a&&r!&riate.
@!u a) als! set u& sree) lay!ut i) a +ery $le6ible %ay. /)&ut $iel's- !ut&ut $iel's- ra'i!
butt!)s- *e(b!6es- a)' e+e) &us*butt!)s a) be &lae' !) sree)s. 0*ese $eatures all!% users
t! 'etermi)e t*e 'ireti!) i) %*i* t*e &r!5ram %ill &r!ee'.
0*e same e'iti)5 !&ti!)s are a+ailable $!r t*e sree) as $!r list 'is&lay a)' t*e seleti!) sree)E
t*e $i6e' &!i)t )umbers a)' t*e 'ate are set a!r'i)5 t! t*e user 'e$ault +alues- t*e time i)
$!rmat **EmmEss- am!u)ts a!r'i)5 t! t*e setti)5 i) a urre)y $iel'- a)' le)5t*s a)' %ei5*ts
a!r'i)5 t! t*e !)te)t !$ a u)it:!$:measure $iel'.
>C? SAP AG BC400 3
11.4
SAP AG 2001
7ptions $or Calling Screens
+00
200
300
+20
+40
Transaction code
CA22 SC-99# +00!


0! start a sree) seBue)eE
S&ei$y t*e $irst sree) as t*e start sree) !$ a tra)sati!) !'e !$ t*e ty&e !ialo' transaction
Call a sree) $r!m a)y !)e ABAP &r!essi)5 bl!( i) t*e &r!5ram
0*is u)it !)e)trates !) t*e latter !&ti!).
>C? SAP AG BC400 4
11.5
SAP AG 2001
Fl(! Fl(! #onn #onn. . De$! De$! Des! Des!. .
/B 0400 FRA Frank-ur! GF> ?e; Cork
/B 0400 FRA Frank-ur! GF> ?e; Cork
...
S1 0002 S0? S"n(a$ore SF8 San Franc"sco

Ti%etable
Change $light data Change $light data
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
Change
in
database
Screen
Application 9'a%ple: 8estination
2:
0400
H:24
+0:+0:00
F-A
IFE
Sa"e Back
/) t*e $!ll!%i)5 u)its- y!u %ill 'e+el!& a &r!5ram- i) se+eral ste&s- t*at e)ables t*e user t! *a)5e
t*e master 'ata !$ t*e $li5*t timetable.
D!uble:li(i)5 !) a) e)try i) t*e basi list !)tai)i)5 t*e $li5*t timetable alls a sree)- %*i*
'is&lays 'ata $r!m t*e li)e y!u selete'- a)' a''iti!)al i)$!rmati!) ab!ut t*e $li5*t !))eti!).
@!u a) *a)5e t*e $li5*t 'urati!) a)' t*e 'e&arture time.
C*!!si)5 Back ta(es t*e user ba( t! t*e basi list %it*!ut *a)5i)5 a)y 'ata.
C*!!si)5 &ave *a)5es t*e 'ata i) t*e 'atabase.
0*ere is a $u)ti!) m!'ule $!r 'atabase *a)5es t*at is im&leme)te' later !) >see t*e u)it ab!ut
Cr!ss:Pr!5ram M!'ulariCati!)?.
>C? SAP AG BC400 5
11.6
SAP AG 2001
Co%ponents $or Screen Processing
Attributes 9le%ent list Flo& control
Screen nu%ber
Short te't
Screen type
#e't screen
!!!
PROCESS EFORE OUTPUT0
MODULE $lea%/oM/$o4e0
PROCESS AFTER INPUT0
MODULE )se%/$omman40
Screen
Painter
Attributes:
C:A-20
-e5uired entry
$ield
!!!
2ayout
8eparture City
1a* sree) *as t*e $!ll!%i)5 i)$!rmati!)E
Attrbutes:
/)lu'e a $!ur:'i5it )umber as t*e sree) )ame- 'esi5)ati!)- a)' a s*!rt te6t i)$!rmati!) !) t*e
sree) ty&e >$!r e6am&le- normal $!r $ull siCe sree)?.
4ayout:
/)lu'es eleme)ts y!u a) &lae !) t*e sree). 1leme)ts t*at are 'is&laye' !) t*e sree) are alle'
screen elements.
(lement lst:
C!)tai)s t*e attributes !$ t*e sree) eleme)ts- su* as t*e &!siti!)- siCe- a)' 'ata ty&e.
*lo# control:
C!)tai)s t*e &r!essi)5 l!5i t*at is t! be &r!esse' be$!re t*e sree) is se)t t! t*e &rese)tati!)
ser+er >PB+? a)' t*e &r!essi)5 l!5i t*at is t! be &r!esse' a$ter a user ati!) *as ta(e) &lae.
>C? SAP AG BC400 6
11.7
SAP AG 2001
9diting Windo& in the raphical 2ayout 9ditor
raphical 2ayout 9ditor
9le%ent
attributes
9le%ent list
Create $ields &ith
re$erence to the
8ictionary
Toolbar

2ayout area
9r!m t*e Gra&*ial 3ay!ut 1'it!r- y!u a) start !t*er $u)ti!)sE
(lement attrbutes:
All t*e attributes !$ a sree) eleme)t are 'is&laye' i) t*is 'ial!5 b!6. @!u a) *a)5e s!me !$ t*e
attributes i) t*e b!6. 16am&leE y!u a) s&ei$y %*et*er !r )!t a) i)&ut/!ut&ut $iel' is t! be i)&ut
rea'y.
5et from ABAP 3ctonary & 5et from program:
0*is 'ial!5 b!6 all!%s y!u t! 5e)erate $iel's t*at *a+e eit*er a 5l!bal ty&e !r t*e same ty&e as a
'ata !bGet i) t*e &r!5ram.
(lement lstE
S*!%s all t*e eleme)ts 'is&laye' !) t*e sree) %it* t*eir attributes. @!u a) als! *a)5e attributes
*ere..
>C? SAP AG BC400 A
11.8
SAP AG 2001
Fl(! Fl(! #onn #onn. . De$! De$! Des! Des!. .
/B 0400 FRA Frank-ur! GF> ?e; Cork
/B 0400 FRA Frank-ur! GF> ?e; Cork
...
S1 0002 S0? S"n(a$ore SF8 San Franc"sco

Ti%etable
Change $light data Change $light data
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
9'a%ple o$ 2e"el +: Create Screen
Screen
@!ur $irst ste& is t! reate a sree)- s&ei$y its lay!ut- a)' 'e$i)e its $iel' attributes.
0*e $iel's Airli)e- 9li5*t )umber- De&arture air&!rt- a)' Desti)ati!) air&!rt are t! a&&ear as !ut&ut
$iel's. 0*e $iel's 9li5*t 'urati!) a)' De&arture time are a+ailable as i)&ut:rea'y $iel's.
0*e user s*!ul' be able t! all t*e sree) by '!uble:li(i)5 a li)e %it*i) t*e basi list a)' retur) t!
t*e basi list by *!!si)5 t*e a&&r!&riate $u)ti!) !) t*e sree).
>C? SAP AG BC400 8
11.9
SAP AG 2001
#ancel Ces ?o
Create ob6ect
Screen +00 does not e'ist!
8o you &ant to create the ob6ect@
Creating a Screen: Screen Attributes
:
AT LINE1SELECTION0
:
CALL SCREEN <""0
:
Short te't
#e't screen
0
ABAP
<"" <"" 8ouble=click
Screen Attributes
Supple%ental data display
Screen type
#or%al
Subscreen
(odal dialog bo'
Screen
Painter
0*ere are se+eral %ays t! reate sree)sE
Through for#ard na$gatonE @!u a) reate sree)s $r!m %it*i) t*e ABAP 1'it!r by '!uble:
li(i)5 !) t*e sree) )umber. 0*is tra)s$ers y!u t! Sree) Pai)ter aut!matially.
1sng +b,ect -a$gatorE @!u a) reate a )e% &r!5ram !bGet sree) $!r y!ur &r!5ram 'iretly
$r!m t*e !bGet list i) t*e )a+i5ati!) area.
.*e) y!u reate a sree)- t*e system %ill as( y!u t! e)ter screen attrbutes. 1)ter a s*!rt
'esri&ti!) !$ t*e sree)- selet sree) ty&e (ormal, a)' e)ter t*e )umber !$ t*e subseBue)t sree).
/$ y!u e)ter 0 $!r t*e subseBue)t sree)- t*e system $irst &r!esses y!ur sree) !m&letely a)' t*e)
retur)s t! &r!essi)5 at t*e &!i)t %*ere t*e sree) all is set. >N!te t*at D0D i) t*e e)try $iel' $!r t*e
subseBue)t 'y)&r! is )!t 'is&laye' beause t*is is atually t*e i)ital +alue.?
/) t*e e6am&le i) t*e 5ra&*i- t*e sree) t*e user reates is alle' $r!m %it*i) t*e basi list.
0*ere$!re- CALL SCREEN 500 must bel!)5 t! t*e AT LINE/SELECTION e+e)t bl!(%
>C? SAP AG BC400 8
11.10
SAP AG 2001
4nput Fields &ith -e$erence to Fields o$ a
8ictionary Structure
T
V
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
S8A#CC7##
0*ere are t%! %ays !$ assi5)i)5 $iel' attributes t! t*e reBuire' sree) $iel'sE
Copyng data from the 3ctonaryE @!u a) !&y ty&es a)' $iel' attributes $r!m e6isti)5
ABAP Diti!)ary strutures. 0*is ma(es all i)$!rmati!) ab!ut t*e !bGet a+ailable t! y!u-
i)lu'i)5 sema)ti i)$!rmati!) ab!ut its 'ata eleme)ts a)' $!rei5) (ey 'e&e)'e)ies. 0*e )ame
!$ t*e Diti!)ary $iel' is aut!matially a'!&te' as a $iel' )ame.
Copyng data from the programE @!u a) !&y $iel' attributes $r!m 'ata !bGets alrea'y
'e$i)e' %it*i) y!ur &r!5ram t! t*e sree). /) !r'er t! '! t*is- *!%e+er- a) ati+ate' !&y !$ t*e
&r!5ram must alrea'y e6ist. 0*e )ame !$ t*e 'ata !bGet is aut!matially ta(e) as t*e $iel'
)ame.
0*e Gra&*ial Sree) Pai)ter all!%s y!u t! 'e$i)e 'i$$ere)t sree) eleme)ts >$!r e6am&le- i)&ut a)'
!ut&ut $iel's- (ey%!r' te6ts- b!r'ers- a)' s! !)? %it* relati+e ease. C*!!se t*e 'esire' sree)
eleme)t a)' t*e) &lae it !) t*e sree) usi)5 t*e m!use.
@!u a) 'elete sree) eleme)ts sim&ly by &!i)ti)5 t! t*em a)' *!!si)5 Delete.
@!u a) m!+e sree) eleme)ts by seleti)5 t*em a)' 'ra55i)5 t*em t! a )e% &!siti!).
>C? SAP AG BC400 #0
11.11
SAP AG 2001
Changing the 9le%ent Attributes o$ a Field:
Attribute Windo&
T
V
Attributes Attributes
8ict
FCode FTyp
e
2ine Colu
%n
#a%e
Te't
Prog 8isp
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
4nput $ield
7utput $ield
-e5uired $ield
! ! !
S8A#CC7##=CA--48
0! mai)tai) t*e attributes !$ a sree) $iel'- selet t*e $iel' a)' *!!se Attrib$tes)
@!u a) assi5) t*e attribute man!atory >.e#$ire! fiel!? t! a sree) $iel'. At ru) time- t*e $iel' %ill
be mar(e' a!r'i)5ly i$ it is set t! i)itial +alue.
/$ )!t all reBuire' $iel's *a+e bee) $ille' at ru) time a)' a user ati!) is &er$!rme'- a) err!r 'ial!5 is
tri55ere' by t*e ABAP ru) time system a)' all i)&ut $iel's are !)e a5ai) 'is&laye' rea'y $!r i)&ut.
>C? SAP AG BC400 ##
11.12
SAP AG 2001
Fl(! Fl(! #onn #onn. . De$! De$! Des! Des!. .
/B 0400 FRA Frank-ur! GF> ?e; Cork
/B 0400 FRA Frank-ur! GF> ?e; Cork
...
S1 0002 S0? S"n(a$ore SF8 San Franc"sco

Ti%etable
Change $light data Change $light data
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
Screen
9'a%ple 2e"el 2: 8isplaying 8ata
2:
0400
H:24
+0:+0:00
F-A
IFE
/) ste& t%! y!u lear) *!% t! 'is&lay 'ata !) a sree) by &r!5rammi)5 'ata tra)s&!rt $r!m t*e basi
list t! t*e sree).
9!r t*e user- t*e &r!5ram %!r(s i) t*e $!ll!%i)5 ma))erE
By '!uble:li(i)5 !) a li)e i) t*e basi list- t*e user bra)*es t! t*e sree) %*ere t*e m!st
im&!rta)t items !$ i)$!rmati!) $!r t*e $li5*t !))eti!) *e !r s*e *as *!se) are 'is&laye'. 0*e
$li5*t 'urati!) a)' 'e&arture time are 'is&laye' i) a $iel' t*at is rea'y $!r i)&ut a)' *e)e a) be
*a)5e'.
0*e user retur)s t! t*e basi list i) !)e !$ se+eral %ays.
.it* t*is i) mi)'- t*is &art !$ t*e u)it %ill 'eal %it*E
Setti)5 u& &rereBuisites $!r aut!mati 'ata tra)s&!rt bet%ee) t*e &r!5ram a)' sree) $iel's
De$i)i)5 t*e sree) i)ter$ae a)' &r!5rammi)5 'ata tra)s&!rt t! t*e 'ata !bGets !$ t*e i)ter$ae
>C? SAP AG BC400 #"
11.13
SAP AG 2001
Screen 4nter$ace
Screen
8ata ob6ects
ABAP
processing
block
ABAP progra%
8ATA &aCsp$li TAP9 sp$li!
TAB29S sdynCconn! TALES TALES
8eclarati"e state%ents
&aCsp$li
Process
Be$ore
7utput
Process
A$ter
4nput
sdynCconn
S8A#CC7##
0*e TALES stateme)t 'e$i)es a) i)ter)al 'ata !bGet t*at ser+es as a) i)ter$ae $!r t*e sree). 0*e
TABLES stateme)t al%ays re$ers t! a) ABAP Diti!)ary !bGet >$!r e6am&le- tra)s&are)t table !r
struture?.
/$ t*e sree) $iel's a)' t*e TABLES stateme)t re$er t! t*e same ABAP Diti!)ary !bGet- t*is 'ata
!bGetIs 'ata is aut!matially tra)s&!rte' t! t*e sree) $iel's e+ery time t*e sree) is tra)smitte'.
A)y )e% e)tries !r *a)5es t*at t*e user ma(es !) t*e sree) are t*e) tra)s$erre' ba( i)t! t*is 'ata
!bGet.
As a rule- strutures t*at !)tai) $iel's !$ t*e same ty&e $!r t*e 'i$$ere)t tables are reate' i) t*e
ABAP Diti!)ary. 0*e $li5*t 'ata &r!5rams bei)5 reate' i) t*is !urse use !)e struture $!r master
'ata mai)te)a)e >,d$n_.onn? a)' a)!t*er $!r b!!(i)5s 'ata >,d$n_)oo9?. ;si)5 y!ur !%)
strutures as i)ter$aes usually *el&s ma(e a &r!5ram easier t! u)'ersta)' a)' *el&s t! a+!i' err!rs
as %ell.
>C? SAP AG BC400 #3
11.14
SAP AG 2001
S$%een <""
Ti%e


8ata Transport $ro% the Progra% to the Screen
ABAP runti%e syste%
ABAP progra%
DATA .a/sp+l# TYPE sp+l#0
TALES s4'n/$onn0
.a/sp+l#
s4'n/$onn
Process
Be$ore
7utput
Process
A$ter
4nput
CALL SCREEN <""0
Data tra)s&!rt bet%ee) &r!5ram 'ata !bGets a)' sree) $iel's %it* t*e same )ame ta(es &lae
aut!matiallyE
/mme'iately be$!re t*e sree) is se)t t! t*e &rese)tati!) ser+er- t*at is- after t*e PB+ e+e)t *as
bee) $ully &r!esse'- t*e !)te)ts $r!m $iel's %it* t*e same )ames are !&ie' $r!m t*e ABAP %!r(
area i)t! t*e sree) $iel's.
ABAP stateme)ts $ailitate 'ata tra)s&!rt bet%ee) ABAP &r!5ram 'ata !bGets a)' t*e %!r( area
'esi5)ate' as t*e sree) i)ter$ae.
>C? SAP AG BC400 #4
11.15
SAP AG 2001
Ti%e


8ata Transport $ro% the Screen to the Progra%
Process
Be$ore
7utput
Process
A$ter
4nput
.a/sp+l#
s4'n/$onn
CALL SCREEN <""0
S$%een <""
Data tra)s&!rt bet%ee) sree) $iel's a)' &r!5ram 'ata !bGets %it* t*e same )ame ta(es &lae
aut!matiallyE
/mme'iately a$ter a user &er$!rms a) ati!) !) t*e sree)- t*at is- before t*e PA2 e+e)t is $ully
&r!esse'- t*e !)te)ts !$ t*e $iel's %it* t*e same )ame are !&ie' $r!m t*e sree) $iel's i)t! t*e
ABAP %!r( area.
ABAP stateme)ts $ailitate 'ata tra)s&!rt bet%ee) Gets t*e %!r( area 'esi5)ate' as t*e sree)
i)ter$ae a)' &r!5ram 'ata !bGets..
>C? SAP AG BC400 #5
11.16
SAP AG 2001
8ata Transport in the Progra% 9'a%ple


ABAP runti%e syste%
CALL SCREEN <""0
Ti%e
Auto%atic
data transport
:489 area
in data ob6ects
TAB29S structure
in screen $ields
Screen $ields in
TALES structure
AT LINE1SELECTION0
Fill the
TAB29S structure
&ith current data
$or selected line
0*e sam&le &r!5ram s*!ul' 'is&lay sree) 'ata t*at mat*es t*e li)e selete' i) t*e basi list.
/$ 'ata !bGets a)' t*eir +alues %ere st!re' i) t*e 0IDE area %*e) t*e basi list %as reate'- t*e 'ata
bel!)5i)5 t! t*e selete' li)e %ill be &lae' i) t*e !rres&!)'i)5 'ata !bGets.
@!u must !&y t*e 'ata t! be 'is&laye' !) t*e sree) t! a TABLES struture. @!u a) '! t*is i) a)y
ABAP &r!essi)5 bl!( t*at is &r!esse' be$!re t*e sree) is se)t t! t*e &rese)tati!) ser+er. 0*ere
are +ari!us %ays !$ '!i)5 t*isE
@!u start by rea'i)5 all t*e 'ata t! be 'is&laye' !) t*e sree) be$!re retrie+i)5 t*e basi list $r!m
t*e 'atabase. @!u t*e) &lae all t*e )eessary 'ata i) t*e 0IDE area. 0*e)- at t*e AT LINE/
SELECTION e+e)t- y!u *a+e t! !&y t*e 'ata i)t! t*e TALES struture !)ly.
3sad$antage: @!u *a+e t! rea' 'ata $r!m t*e 'atabase t*at t*e user may )!t e+e) l!!( at. /$
'etaile' 'ata *as *a)5e' bet%ee) reati)5 t*e basi list a)' 'is&layi)5 t*e sree)- t*e system %ill
'is&lay t*e %r!)5 'ata.
Be$!re t*e sree) is alle' usi)5 t*e SELECT SINGLE stateme)t- y!u rea' t*e a''iti!)al 'ata $!r
t*e selete' (ey >0IDE area? $r!m t*e 'atabase.
Ad$antage: @!u re'ue t*e +!lume !$ 'ata y!u )ee' t! rea' $r!m t*e 'atabase %*e) y!u reate
t*e basi list. 0*e 'etaile' list is u&:t!:'ate.
3sad$antage: 0*e system se)'s a Buery t! t*e 'atabase e+ery time t*e user '!uble:li(s t*e list.
>C? SAP AG BC400 #6
11.17
SAP AG 2001
4%ple%enting the Sa%ple Progra%
Fields:
(A#8T
CA--48
C7##48
C7<#T-AF-
C4TAF-7(
A4-PF-7(
C7<#T-AT7
C4TAT7
A4-PT7
F2T4(9
89PT4(9
A--T4(9
84STA#C9
84ST48
F2TAP9
Basic
2ist :489 Area
Screen:
7utput Field 4nput Field

Be$ore calling the screen Be$ore calling the screen: :


S929CT S4#29 W F-7( S929CT S4#29 W F-7( sp$li sp$li !!! !!!
&aCsp$li Structure: sdynCconn
O) t*e last 'e+el!&me)t le+el- t*e &r!5ram s*!ul' all!% t*e user t! *a)5e 'ata i) t*e 'atabase. 0*e
user s*!ul' be able t! *a)5e t*e $iel's FLTIME a)' DEPTIME. 0! e)able t*e user t! *a)5e 'ata
$!r se+eral airli)es- a basi list !$ t*e airli)es $!r %*i* t*e user is all!%e' t! *a)5e 'ata s*!ul' be
'is&laye'. 0*e user rea*es t*e *a)5e sree) by '!uble:li(i)5 i) t*e basi list. O)e t*e *a)5es
are ma'e suess$ully- t*e user retur)s t! t*e basi list. <!%e+er- a )e% basi list is )!t reate'.
0*ere$!re- t*e 'ata t*at a) be *a)5e' s*!ul' )!t a&&ear !) t*e basi list.
0! e)sure t*at t*e 'atabase 'ata 'is&laye' !) t*e sree) is u&:t!:'ate- t*e re!r' is rea' a5ai) $r!m
t*e 'atabase at t*e be5i))i)5 !$ AT LINE/SELECTION.
A'+a)ta5es !$ t*is met*!'E
9!r t*e basi list- !)ly t*!se !lum)s !$ t*e 'atabase table t*at are 'is&laye' !) t*e list )ee' t! be
rea'. 0*is a) im&r!+e &er$!rma)e %it* lar5e lists.
0*e 'ata t*at is 'is&laye' !) t*e sree) is al%ays u&:t!:'ate- e+e) i$ t*e 'ata re!r' selete' *as
Gust bee) *a)5e' usi)5 t*is &r!5ram.
C*a)5es ma'e t! t*e 'atabase usi)5 t*e sree) '! )!t lea' t! i)!rret +alues i) t*e basi list
beause t*e m!'i$iable $iel's are )!t !)tai)e' i) t*e basi list.
>C? SAP AG BC400 #A
11.18
SAP AG 2001
START1OF1SELECTION0
SELECT $a%%#4 $onn#4 a#%p+%om $#t'+%om a#%pto $#t'to
INTO CORRESPONDING FIELDS OF .a/sp+l#
FROM sp+l#0
3RITE: * .a/sp+l#1$a%%#4 COLOR COL/@EY6
.a/sp+l#1$onn#4 COLOR COL/@EY6
000
2 ,)++e%#n( Me' +#el4s
HIDE: .a/sp+l#1$a%%#46 .a/sp+l#1$onn#40
ENDSELECT0
AT LINE1SELECTION0
SELECT SINGLE 2 FROM sp+l#
INTO .a/sp+l#
3HERE $a%%#4 7 .a/sp+l#1$a%%#4
AND $onn#4 7 .a/sp+l#1$onn#40

CALL SCREEN <""0
HIDE: HIDE: .a .a/ /sp+l# sp+l#1 1$a%%#4 $a%%#46 6 .a .a/ /sp+l# sp+l#1 1$onn#4 $onn#40 0
SELECT SINGLE 2 FROM SELECT SINGLE 2 FROM sp+l# sp+l#
INTO INTO .a .a/ /sp+l# sp+l#
3HERE 3HERE $a%%#4 $a%%#4 7 7 .a .a/ /sp+l# sp+l#1 1$a%%#4 $a%%#4
AND AND $onn#4 $onn#4 7 7 .a .a/ /sp+l# sp+l#1 1$onn#4 $onn#40 0
MO;E1CORRESPONDING MO;E1CORRESPONDING .a .a/ /sp+l# sp+l# to to s4'n s4'n/ /$onn $onn0 0
Synta': Sa%ple Progra% &ith 8ata Transport
0! 'is&lay 'ata !) t*e sree)- t*e TABLES struture must be $ille' %it* urre)t 'ata be$!re t*e
sree) is se)t t! t*e &rese)tati!) ser+er. 0*e e6am&le i) t*e 5ra&*i s*!%s !)e %ay !$ '!i)5 t*is.
0*e 0IDE stateme)t is use' t! &lae (ey $iel's !$ 'atabase tables %it* re$ere)e t! t*e list li)e i) t*e
0IDE area. 0*e) t*e urre)t 'ata $!r t*e li)e selete' is a+ailable i) $iel's ;a_,p!&"/.a"d
a)' ;a_,p!&"/.onn"d at e+e)t AT LINE/SELECTION.
0*e 'ata re!r' is rea' $r!m t*e 'atabase usi)5 SELECT SINGLE. 0*is e)sures t*at t*e 'ata is u&:
t!:'ate.
0*e !rres&!)'i)5 $iel's !$ t*e ;a_,p!&" %!r( area are !&ie' t! t*e TABLES struture
,d$n_.onn usi)5 MO*E1CORRESPONDING. 0*e system tra)s&!rts t*e struture 'ata t! t*e sree)
$iel's aut!matially.
Alter)ati+ely- y!u a) &lae t*e 'ata i)t! t*e TABLES struture 'iretly %*e) t*e 'atabase is
aesse'- usi)5 t*e INTO CORRESPONDING FIELDS a''iti!).
>C? SAP AG BC400 #8
11.19
SAP AG 2001
Fl(! Fl(! #onn #onn. . De$! De$! Des! Des!. .
/B 0400 FRA Frank-ur! GF> ?e; Cork
/B 0400 FRA Frank-ur! GF> ?e; Cork
...
S1 0002 S0? S"n(a$ore SF8 San Franc"sco

Ti%etable Ti%etable
Change $light data Change $light data
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight duration
8eparture ti%e
Screen Screen
9'a%ple 2e"el 3: Assigning Pushbuttons
(essage 2in status line
(essage +
in status line
2:
0400
H:24
+0:+0:00
F-A
IFE
Sa"e Back
/) ste& t*ree y!u lear) *!% t! assi5) &us*butt!) $u)ti!)s. 0*ese $u)ti!)s all!% 'i$$ere)t (i)'s !$
&r!5ram l!5i t! be &r!esse' a!r'i)5 t! user *!ie.
9!r t*e user- t*e &r!5ram %!r(s i) t*e $!ll!%i)5 ma))erE
By '!uble:li(i)5 !) a li)e- t*e user bra)*es t! a sree) %*ere t*e m!st im&!rta)t items !$
i)$!rmati!) $!r t*e !))eti!) t*e user *!se are 'is&laye'. 0*e $li5*t 'urati!) a)' 'e&arture time
a) be *a)5e'.
By *!!si)5 t*e Ba( &us*butt!)- t*e user retur)s t! t*e basi list %it*!ut %riti)5 a)y *a)5es t!
t*e 'atabase. 0*e messa5e DSree) %as le$t %it*!ut a)y *a)5es bei)5 ma'eD is 'is&laye' i) t*e
status bar !$ t*e basi list.
C*!!se Sa+e t! %rite all !$ y!ur *a)5es t! t*e 'atabase. 0*e *a)5es ta(e e$$et i) t*e &r!5ram
!)ly at a later time. 0*e &us*butt!) is alrea'y &re&are' i) t*e $!ll!%i)5 seti!). 0*e user retur)s
t! t*e basi list a$ter *!!si)5 t*e &us*butt!) a)' a messa5e is 'is&laye' i) t*e status bar. .
A$ter ea* !t*er user ati+ity- t*e sree) is 'is&laye' !)e a5ai).
.it* t*is i) mi)'- t*is &art !$ t*e u)it 'eals %it*E
9l!% l!5i i) PBO a)' PA/ e+e)t bl!(s
;si)5 PBO a)' PA/ m!'ules as ABAP &r!essi)5 bl!(s $!r sree) &r!5rammi)5
1+aluati)5 i)$!rmati!) !) %*i* &us*butt!) %as selete' at t*e time !$ PA/
>C? SAP AG BC400 #8
11.20
SAP AG 2001
-unti%e Beha"ior When <ser Chooses a
Pushbutton
Ti%e


lobal data ob6ect
ABAP runti%e syste%
ABAP progra%
Back
Function code BACE
okCcode
BACE
CASE oM/$o4e0
3HEN 9AC@90
000
ENDCASE0
/$ t*e user *!!ses a &us*butt!)- t*e ru) time system !&ies t*e ass!iate' $u)ti!) !'e t! a s&eial
sree) $iel'. 0*is sree) $iel' is usually alle' t*e o9_.ode%
0*e !)te)t !$ t*is sree) $iel' is t*e) aut!matially tra)s&!rte' i$ t*ere is a) ABAP 'ata !bGet !$
t*e same )ame.
0*e !)te)t !$ t*is o9_.ode $iel' a) t*e) be e+aluate' i) a) ABAP &r!essi)5 bl!(.
0*is me*a)ism all!%s y!u t! reate a &r!5ram $l!% t*at 'e&e)'s !) t*e userIs ati!)s. 0*e
$!ll!%i)5 sli'es 'eal %it* *!% y!u 'elare t*e o9_.ode $iel'- *!% y!u reate &us*butt!)s a)'
assi5) $u)ti!) !'es t! t*em- a)' *!% y!u a) *a)5e t*e sree) seBue)e.
>C? SAP AG BC400 "0
11.21
SAP AG 2001
8e$ining Pushbuttons > Assigning Function Codes
T
V
Attributes Attributes
8ict
FCode FType
2ine
Colu%
n
#a%e
Te't
Prog 8isp
Airline
Flight nu%ber
8eparture airport
8estination airport
Flight ti%e
8eparture ti%e
Back
4nput $ield
7utput $ield
! ! !
B<TT7#2
Sa"e
BACE
Back
0! be able t! tra)s&!rt i)$!rmati!) as t! %*i* &us*butt!) %as *!se)- y!u must assi5) a $u)ti!)
!'e t! ea* &us*butt!). @!u a) '! t*is eit*er i) t*e Gra&*ial 3ay!ut 1'it!r usi)5 t*e
mai)te)a)e $u)ti!) $!r $iel' attributes !r $r!m t*e eleme)t list.
>C? SAP AG BC400 "#
11.22
SAP AG 2001
(aking the Co%%and Field <sable
Screen Pa"n!er Screen Pa"n!er: /"s! : /"s! o- o- 4le*en!s 4le*en!s
B<TT7#+
B<TT7#2
7ECC789 7E
Sa"e
Back
SA?9
BACE
Field na%e
!!! !!!
TALES s4'n/$onn0
DATA: oM/$o4e l#Me s'1)$omm0
ABAP
9ditor
Screen
Painter
Function code Field te't
eneral attributes
DATA DATA oM oM/ /$o4e $o4e LI@E LI@E s' s'1 1)$omm )$omm0 0
+
2
7ECC789 7ECC789
0*e !mma)' $iel' ser+es as a s&eial $iel' i)t! %*i* !rres&!)'i)5 $u)ti!) !'es are &lae' a$ter
e+ery user ati!).
0*is $iel' must be 5i+e) a )ame i) t*e last li)e !$ t*e list !$ eleme)ts !) ea* sree). Ge)erally- y!u
use t*e )ame OSUCOD1.
/) t*e 'elarati!) &art !$ t*e &r!5ram- 'e$i)e a !rres&!)'i)5 'ata !bGet %it* t*e same )ame. At ru)
time- %*e)e+er a user ati!) is tri55ere'- t*e $u)ti!) !'e !$ t*e &us*butt!) *!se) is &lae' i)t!
t*e 'ata !bGet. @!u a) use t*e system $iel' sy:u!mm as a re$ere)e $iel' $!r t*e ty&e.
>C? SAP AG BC400 ""
11.23
SAP AG 2001
Ti%e


Calling (odules
+00
PB7
CALL SCREEN <""0
MODULE name
OUTPUT0
ENDMODULE0
MODULE
name0

PA4
MODULE
name0

MODULE name
INPUT0
ENDMODULE0
0*e ABAP stateme)t CALL SCREEN KnnnnL i)terru&ts t*e &r!essi)5 !$ t*e &r!essi)5 bl!(
a)' alls a sree).
1a* sree) *as t%! e+e)t bl!(sE
PROCESS EFORE OUTPUT APB+B is &r!esse' imme'iately be$!re a sree) is 'is&laye'.
At t*is time- m!'ules are alle' t*at ta(e are !$ tas(s su* as &resetti)5 +alues i) sree) $iel's.
PROCESS AFTER INPUT APA2B is &r!esse' imme'iately a$ter a user ati!). All &r!5ram
l!5i t*at is i)$lue)e' by user ati!) must be &r!esse' at PAI.
-ote: 0*e !'e $!r t*e e+e)ts PBO a)' PA/ is %ritte) usi)5 t*e Sree) Pai)ter, )!t %it* t*e ABAP
1'it!r. 0*ese t%! e+e)t bl!(s ma(e u& t*e $l!% l!5i !$ a sree). A s&eial small set !$ !mma)'s
>not ABAP stateme)ts? is a+ailable $!r &r!5rammi)5 $l!% l!5i. 0*e m!st im&!rta)t stateme)t *ere
is alle'E MODULE m!'uleU)ame. 0*is alls t*e m!'uleU)ame ABAP &r!essi)5 bl!(. .it*i) t*is
bl!( y!u a) !'e i) ABAP as usual.
)odules are ABAP &r!essi)5 bl!(s %it* )! i)ter$ae t*at a) be alle' !)ly $r!m %it*i) t*e $l!%
l!5i. M!'ules are e)l!se' %it*i) t*e ABAP stateme)ts MOD+LE a)' ENDMOD+LE%
>C? SAP AG BC400 "3
11.24
SAP AG 2001
PROCESS EFORE OUTPUT0

ABAP
9ditor
Screen
Painter
Back
Sa"e
9"aluating the Function Code $or PA4
MODULE )se%/$omman4/"<"" INPUT0
CASE oM/$o4e0
3HEN 9AC@90 000
3HEN 9SA;E90 000
ENDCASE0
ENDMODULE0
MODULE MODULE )se% )se%/ /$omman4 $omman4/"<"" INPUT0 /"<"" INPUT0
ENDMODULE0 ENDMODULE0
CASE CASE
PROCESS AFTER INPUT0

MODULE )se%/$omman4/"<""0 MODULE MODULE )se% )se%/ /$omman4 $omman4/"<""0 /"<""0
@!u a) e+aluate user ati!)s i) a PA/ m!'ule. ;sually- t*is PA/ m!'ule is alle'
-,e_.ommand_nnnn- %*ere nnnn sta)'s $!r t*e sree) )umber. /) t*is m!'ule- e+aluate t*e
$u)ti!) !'e i) t*e o9_.ode $iel'.
-ote: 9!r *ist!rial reas!)s- m!'ules *a+e )! i)ter$ae a)' )! l!al +ariables. @!u a) aess all t*e
ABAP &r!5ramIs 5l!bal 'ata i) m!'ules.
>C? SAP AG BC400 "4
11.25
SAP AG 2001
PROCESS AFTER INPUT0
MODULE )se%/$omman4/<""0
MODULE )se%/$omman4/<"" INPUT0
ENDMODULE0
ABAP
9ditor
Screen
Painter
Creating (odules <sing For&ard #a"igation
#ancel Ces ?o
Create ob6ect
PA4 %odule <S9-CC7((A#8C+00 does not e'ist!
8o you &ant to create the ob6ect@
3S4RA#8''A?DA0100
PA0 *oule
?e; "nclue
'a"n $ro(ra*
0nclue selec!"on
@B#400A00ADC?PR8
Create PA4 %odule
As a rule- y!u im&leme)t MOD+LE alls %it*i) a sree)Is $l!% !)tr!l >PBO a)' PA/ e+e)ts?. 0*e
m!'ules t*emsel+es are reate' usi)5 ABAP.
0*ere are t%! %ays t! reate a m!'uleE
*or#ard na$gatonE 0! reate a m!'ule- '!uble:li( !) t*e m!'ule )ame i) t*e $l!% l!5i
$r!m %it*i) t*e &creen Painter.
-a$gaton areaE /$ y!u %a)t t! reate a m!'ule $r!m %it*i) t*e !bGet list !$ t*e &r!5ram-
*!!se a )e% &r!5ram !bGet PBO mod-&e !r PAI mod-&e.
A m!'ule a) be alle' $r!m m!re t*a) !)e sree) >reusability?.
Ma(e sure t*at m!'ules alle' at PBO e+e)ts are 'e$i)e' usi)5 t*e stateme)t MOD+LE %%%
O+TP+T- %*ereas m!'ules 'e$i)e' usi)5 t*e stateme)t MOD+LE %%% INP+T a) be alle' !)ly
at PA/ e+e)ts.
>C? SAP AG BC400 "5
11.26
SAP AG 2001
Ti%e


#e't Screen: CA22 SC-99# State%ent
+00
PB7
CALL SCREEN <""0
PA4
Screen attributes
#e't screen 0
Ne?t s$%een "
/$ y!u e)ter 0 $!r t*e )e6t sree)- t*e system $irst &r!esses y!ur sree) !m&letely a)' t*e)
!)ti)ues &r!essi)5 t*e &r!5ram $r!m t*e &!i)t %*ere t*e sree) %as alle'.
>C? SAP AG BC400 "6
11.27
SAP AG 2001
Ti%e


#e't Screen: Set Statically
CALL SCREEN <""0
000
Ne?t s$%een <""
+00
PB7
PA4
Screen attributes
#e't screen +00
/$ y!u set t*e )e6t sree) $!r sree) #00 t! #00- t*e system &r!esses t*e sree) a5ai) a$ter it *as
$i)is*e' &r!essi)5 t*e PA/ m!'ule.
>C? SAP AG BC400 "A
11.28
SAP AG 2001
Ti%e


#e't Screen: Set 8yna%ically
CALL SCREEN <""0
000
S9T SC-99# 0!
SET SCREEN "0 SET SCREEN "0
"
Ne?t s$%een "
+00
PB7
PA4
Screen attributes
#e't screen +00
;si)5 t*e ABAP stateme)t SET SCREEN )))) $r!m %it*i) a PA/ m!'ule- y!u a) *a+e t*e )e6t
sree) set 'y)amially. 0*e stati e)try is t*e) su&&resse'.
0*e )umber !$ t*e urre)t sree) is e)tere' by t*e system as t*e sta)'ar' e)try $!r t*e )e6t sree).
0*is e)sures t*at t*e 1)ter (ey !r t*e 5ree) *e(mar( lea' t! a $iel' *e( !)lyH a$ter%ar's t*e
sree) is tra)smitte' !)e a5ai)- &!ssibly %it* a res&eti+e err!r messa5e. 0! lea+e t*e sree)- a)
a&&r!&riate &us*butt!) must be 'e$i)e' t*at tri55ers a sree) *a)5e %it*i) t*e PA/ m!'ule.
-ote: /$ t*e system &r!esses t*e same sree) a5ai)- it als! ru)s t*r!u5* all t*e PBO m!'ules a5ai).
/$ y!u 'ei'e t! $ill t*e TABLES struture i) a PBO m!'ule- ma(e sure t*at 'ata *a)5es ma'e by
t*e user are )!t !+er%ritte) !) t*e sree) i$ t*e m!'ule 5ets alle' t%ie
>C? SAP AG BC400 "8
11.29
SAP AG 2001
Synta' 9'a%ple: 9"aluating the Function Codes
DATA oM/$o4e LI@E s'1)$omm0

0
0
MODULE )se%/$omman4/"<"" INPUT0
CASE oM/$o4e0
3HEN 9AC@90
SET SCREEN "0
MESSAGE s"OEAC!""C0
3HEN 9SA;E90
2 $all#n( a +)n$t#on mo4)le to save $&an(es
2 #s le+t o)t +o% 4#4a$t#$al %easons
SET SCREEN "0
MESSAGE s"OEAC!""C0
ENDCASE0
ENDMODULE0
CASE CASE oM oM/ /$o4e $o4e0 0
3HEN 9AC@90 3HEN 9AC@90
3HEN 9SA;E90 3HEN 9SA;E90
9!r t*e e6am&le $!r e+aluati)5 $u)ti!) !'es- t%! &us*butt!)s are 'isusse'E
C*!!si)5 BACS 'y)amially sets t*is +alue t! 0. 0*is se)'s t*e user ba( t! t*e all&!i)t. /) !ur
ase- t*is mea)s t*e user retur)s t! t*e basi list. Messa5e 05A a&&ears i) t*e status bar !$ t*e )e6t
sree).
.it* SA719 t*e &r!5ram be*a+es i) t*e same %ay as BACS. 0*e user retur)s t! t*e basi listH
*!%e+er- t*ere is a )e% messa5e i) t*e status bar. /) t*e u)it ab!ut Cr!ss:Pr!5ram M!'ulariCati!)-
t*e &r!5ram is e)*a)e' %it* a 'ata re!r' *a)5e.
>C? SAP AG BC400 "8
11.30
SAP AG 2001
Ti%e
-unti%e Beha"ior $or Special Situation: #o
Function Code 4s Assigned to the 9#T9- Eey
Screen $ield
7ECC789
Basic list
8ata ob6ect
okCcode
BACE
BACE
BACE
Screen +00
BACE
BACE
BACE
8ouble=click
Back to
basic list
Trans%it
screen +00
8ouble=click
Trans%it
screen +00
Back to
basic list@
0*is seti!) %al(s t*r!u5* a &artiular se)ari! t! &!i)t !ut t*e )eessity !$ a) a''iti!)al &r!5ram
ste&.
0*e user starts t*e &r!5ram a)' '!uble:li(s t! 'is&lay 'etaile' i)$!rmati!) !) t*e sree). A$ter
'etermi)i)5 t*at all t*e 'ata is !rret t*e user retur)s t! t*e basi list by *!!si)5 t*e 5ree) arr!%.
/) t*is %ay- t*e $u)ti!) !'e BACS- %*i* is assi5)e' t! t*is sta)'ar' &us*butt!)- is &lae' i) t*e
!mma)' $iel' a)' t*e) it is tra)s&!rte' aut!matially t! t*e 5l!bal 'ata !bGet o9_.ode !$ t*e
ABAP &r!5ram. 0*is $u)ti!) !'e is t*e) e+aluate' i) a PA/ m!'ule. 0*e )e6t sree) is set t! 0.
0*e) AT LINE/SELECTION is &r!esse' $urt*er. /$ t*ere is )! WRITE stateme)t t*ere- t*e system
'is&lays t*e basi list a5ai).
0*e user t*e) 'is&lays 'etails $!r a)!t*er re!r' by '!uble:li(i)5 it. 0*r!u5* aut!mati $iel'
tra)s&!rt- t*e !)te)t !$ t*e 5l!bal 'ata !bGet o9_.ode is tra)s&!rte' i)t! t*e sree) $iel' %it* t*e
same )ame a)' t*e sree) is 'is&laye'.
/$ t*e user )!% *!!ses Enter- t*e sree) is 'is&laye' !)e a5ai)- &r!+i'e' no $u)ti!) !'e *as
bee) assi5)e' t! t*e 1)ter (ey. >Sta)'ar' aseV? 0*ere$!re- t*e !mma)' $iel' is not !+er%ritte).
0*e $u)ti!) !'e BACS remai)s i) t*e !mma)' $iel' a)' is !&ie' t! t*e 5l!bal 'ata !bGet
o9_.ode at t*e be5i))i)5 !$ t*e PA/ e+e)t.
0*is $u)ti!) !'e is t*e) e+aluate' i) a PA/ m!'ule. C!)seBue)tly- as 'esribe' ab!+e- t*e system
5!es ba( t! t*e basi list- i)stea' !$ 'is&layi)5 t*e sree) a5ai).
>C? SAP AG BC400 30
11.31
SAP AG 2001
Solution 7ption:
8eleting the Co%%and Field $or PB7
PROCESS EFORE OUTPUT0
MODULE $lea%/oM/$o4e0
PROCESS AFTER INPUT0

MODULE )se%/$omman4/"<""0
ABAP
9ditor
MODULE $lea%/oM/$o4e OUTPUT0
CLEAR oM/$o4e0
ENDMODULE0

MODULE )se%/$omman4/"<"" INPUT0
CASE oM/$o4e0
000
ENDMODULE0
Screen
Painter
Back
Sa"e
MODULE MODULE $lea% $lea%/ /oM oM/ /$o4e $o4e OUTPUT0 OUTPUT0
ENDMODULE0 ENDMODULE0
CLEAR CLEAR oM oM/ /$o4e $o4e0 0
MODULE MODULE $lea% $lea%/ /oM oM/ /$o4e $o4e0 0
/$ t*e !mma)' $iel' is )!t i)itialiCe'- err!rs a) !ur si)e )!t e+ery &us*butt!) must *a+e a
$u)ti!) !'e assi5)e' t! it. 0*ere are t%! %ays t! i)itialiCe a !mma)' $iel'E
/)itialiCe t*e o9_.ode $iel' i) a PBO m!'ule. 0*e) it is set t! t*e i)itial +alue at PA/- u)less t*e
user *as arrie' !ut a user ati!) t! %*i* a $u)ti!) !'e is assi5)e'. /) t*is ase- t*e !(U!'e
$iel' !)tai)s t*e urre)t $u)ti!) !'e.
;se a) au6iliary $iel' a)' !&y t*e !)te)t !$ t*e o9_.ode $iel' i)t! t*e au6iliary $iel' i) a PA/
m!'ule- t*e) i)itialiCe t*e o9_.ode $iel'. /) t*is ase- t*e au6iliary $iel' must be Buerie' i) t*e
PA/ m!'ule $!r t*e $u)ti!) !'e e+aluati!).
>C? SAP AG BC400 3#
11.32
SAP AG 2001
Aou are no& able to:
<ser 8ialog Screen: <nit Su%%ary
8escribe screen attributes and strengths
Write a progra% that:
8isplays data on a screen
Allo&s the user to change so%e o$ that data
Allo&s the user to in$luence $urther progra%
processing using pushbuttons
>C? SAP AG BC400 3"
11.33Screen E$ercises
1nt: 0creen
Topc: Creatng 0creens
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create sree)s
Call e6isti)5 sree)s $r!m t*e &r!5ram
0*e &r!5ram SAPC!""UDT/DYNPRO/A e)ables y!u t! 'is&lay all
b!!(i)5s ma'e by !)e tra+el a5e)y as a list.
As a $irst ste&- *a)5e t*e &r!5ram as $!ll!%sE
A sree) is t! be alle' %*e)e+er t*e user '!uble:li(s a li)e i) t*e basi
list. 0*is sree) s*!ul' !)tai) i)&ut $iel's $!r s&ei$i b!!(i)5 'ata t*at
is )!t 'is&laye' !) t*e list. 0*is sree) s*!ul' als! !)tai) !ut&ut $iel's
$!r b!!(i)5 i)$!rmati!) t*at is alrea'y 'is&laye' !) t*e list. A)y user
ati!) s*!ul' result i) t*e basi list bei)5 'is&laye' a5ai)
Program: =C!""/>>/DYNPRO
)odel soluton: SAPC!""UDS/DYNPRO/A
Template: SAPBC400+DT_DYNPRO_A
#:# C!&y t*e tem&late SAPBC400+DT_DYNPRO_A t! y!ur )e% &r!5ram
=C!""/>>/DYNPRO.
#:" Be!me $amiliar %it* t*e &r!5ram. 0est t*e &r!5ram usi)5 t*e tra+el a5e)y
)umber #WW >CC is y!ur 5r!u& )umber?.
#:3 Seleti)5 a li)e !) t*e basi list >by '!uble:li(i)5 !r usi)5 9"? s*!ul' all a
sree). Create t*is sree) >sree) )umber #00? usi)5 $!r%ar' )a+i5ati!).
#:4 9!r t*e attributes- assi5) sree) )umber 0 as t*e )umber !$ t*e )e6t sree)- s! t*at
a$ter a)y user ati!) !) sree) #00- t*e user retur)s t! t*e basi list.
#:5 Create i)&ut/!ut&ut $iel's !) t*e sree). .*e) y!u are assi5)i)5 $iel' ty&es- re$er
t! ABAP ABAP Diti!)ary struture SDYN_BOOK.
C!&y b!!(i)5 table (ey $iel's CARRID- CONNID- FLDATE- a)' OO@ID %it* t*eir $iel'
labels.
0*e ust!mer )ame NAME s*!ul' be !&ie' %it*!ut a $iel' label a)' s*!ul' be 'is&laye'
)e6t t! t*e ust!mer )umber.
>C? SAP AG BC400 33
0*e $iel's CUSTOMID- CUSTTYPE- SMO@ER- CLASS- LOCCURAM- a)' LOCCUR@EY
s*!ul' be !&ie' %it* $iel' labels.
#:6 Mai)tai) t*e sree) $iel' attributesE
9iel's CARRID- CONNID- FLDATE- OO@ID6 a)' CUSTOMID s*!ul' be 'is&laye' as
!ut&ut $iel's >O$tp$t fiel! attribute?.
0*e ust!mer )ame NAME s*!ul' be 'is&laye' )e6t t! t*e ust!mer )umber %it*!ut te6t
>O$tp$t only attribute?.
0*e $iel's CUSTTYPE- SMO@ER- CLASS- LOCCURAM6 a)' LOCCUR@EY are i)&ut/!ut&ut
$iel's >Inp$t fiel!3O$tp$t fiel! attributes?.
>C? SAP AG BC400 34
("ercses
1nt: 0creen
Topc: 3ata Transport
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
9ill t*e sree) $iel's %it* 'ata $r!m t*e &r!5ram
C*a)5e y!ur &r!5ram =C!""/>>/DYNPROE
D!uble:li(i)5 !) a li)e !$ t*e basi list 'is&lays 'etails !$ t*e selete'
b!!(i)5 !) t*e sree). /$ t*e user *a)5es 'ata !) t*e sree)- t*e) t*ese
*a)5es s*!ul' be a+ailable i) t*e &r!5ram !)e t*e user *as le$t t*e
sree).
Program: =C!""/>>/DYNPRO
)odel soluton: SAPC!""UDS/DYNPRO/
".# C*a)5e y!ur &r!5ram IBC400_##_DYNPRO !r !&y t*e tem&late
SAPBC400+DS_DYNPRO_A t! t*e )e% &r!5ram IBC400_##_DYNPRO_B%
"." /) y!ur &r!5ram- use t*e TALES stateme)t t! reate a %!r( area %it* t*e same
)ame. 0*is %!r( area %ill t*e) ser+e as t*e sree) i)ter$ae.
":3 1)sure t*at t*e (ey $iel's !$ t*e SOO@ 'atabase table a)' t*e ust!mer )ame are
still a+ailable >HIDE: ...? i) t*e AT LINE1SELECTION e+e)t bl!( a$ter a li)e
*as bee) selete' !) t*e basi list >'!uble li( !r 9"?.
":4 C*a)5e y!ur &r!5ram a!r'i)5ly s! t*at 'ata i) t*e 'atabase a) be *a)5e'.
Ma(e sure t*at t*e sree) a) be &r!esse' !)ly i$ t*e user *as *a)5e aut*!riCati!)
$!r t*e airli)e selete'.
Be$!re t*e sree) is alle'- retrie+e t*e 'ata !$ t*e selete' &!sti)5 $r!m t*e SBOOK
'atabase table i)t! a suitable %!r( area >)ame &r!&!salE .a/s,ooM? 0! ma(e sure
t*at t*e 'ata is u&:t!:'ate. /$ t*e 'ata re!r' a))!t be rea'- t*e system must 'is&lay
i)$!rmati!) messa5e #A6 $r!m messa5e lass BC400. /$ t*e 'ata is rea'
suess$ully- all t*e sree).
":5 /mme'iately be$!re t*e sree) is alle'- !&y t*e rele+a)t 'ata i)t! t*e TALES
%!r( area.
>C? SAP AG BC400 35
("ercses
1nt: 0creen
Topc: *eld Transports and 0ubse.uent 0creen Processng
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create &us*butt!)s !) sree)s
Pr!ess t*e system !'e tri55ere' %*e) t*e user li(s !) a
&us*butt!) a)' t*us !)tr!l t*e &r!5ram $l!%
Set t*e )e6t sree) 'y)amially
C*a)5e y!ur &r!5ram =C!""/>>/DYNPROE
O) t*e sree)- t*e user s*!ul' be able t! !)tr!l &r!5ram $l!% t*r!u5*
t%! &us*butt!)s.
Program: =C!""/>>/DYNPRO
)odel soluton: SAPC!""UDS/DYNPRO/C
3:# C*a)5e y!ur &r!5ram =C!""/>>/DYNPRO !r !&y t*e tem&late
SAPC!""UDS/DYNPRO/ t! t*e )e% &r!5ram =C!""/>>/DYNPRO/C.
3:" De$i)e t%! &us*butt!)s !) t*e sree) t*at all!% t*e user t! eit*er retur) t! t*e basi
list >PUSH/AC@? !r t! sa+e t*e *a)5e' 'ata >PUSH/SA;E?E
Name !$
&us*butt!)
Te"t 9u)ti!) !'e
P;S<UBACS Ba( BAC:
P;S<USA71 &ave
!r i!)
/CONUS@S01MUSA71
0A@(
3:3 Name t*e O@/CODE $iel' !) t*e sree) a)' 'e$i)e a 'ata !bGet !$ t*e same )ame
>a)' !rres&!)'i)5 ty&e? i) t*e &r!5ram.
3:4 Na+i5ate i) t*e $l!% l!5i. Create a m!'ule $!r $u)ti!) !'e &r!essi)5 >usi)5
$!r%ar' )a+i5ati!)? at P%+C(00 A*T(% 2-P1TE
9u)ti!) !'e Acton Ne6t sree)
BACS N!)e 3ist
SA71 *rst: 3ist
>C? SAP AG BC400 36
9u)ti!) !'e Acton Ne6t sree)
/)$!rmati!) messa5e )!.
060>BC400?
All !t*ers N!)e Sree) #00
3:5 1)sure t*at &ressi)5 Enter al%ays 'is&lays sree) #00- re5ar'less !$ t*e )a+i5ati!)
*ist!ry. /)itialiCe t*e +:>C+3( $iel' i) a PBO m!'ule.
>C? SAP AG BC400 3A
11.34Screens So%&tions
1nt: 0creens
Topc: Creatng 0creens
)odel 0oluton: Program SAPC!""UDS/DYNPRO/A
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DYNPRO_A <
<D <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_d$npo_a%
CONSTANTS a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B%
2 De+#n#t#on o+ sele$t#on s$%een
PARAMETERS pa_an-m TYPE ,)oo9/a'en.$n-m%
2 .o%Ma%ea +o% sele$t
DATA= ;a_)oo9"n' TYPE ,).400_)oo9"n'%
START/OF/SELECTION%
2 sele$t#n( 4ata )s#n( an AAP 4#$t#ona%' v#e. to (et t&e 4ata +%om
2 s,ooM an4 t&e $)stome% name +%om s$)stom
SELECT .a"d .onn"d !&da#e )oo9"d .-,#om"d name
FROM ,).400_)oo9"n'
INTO CORRESPONDING FIELDS OF ;a_)oo9"n'
W0ERE a'en.$n-m > pa_an-m%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_d",p&a$%
IF ,$/,-). > 0%
2 O)tp)t
WRITE= ? ;a_)oo9"n'/.a"d COLOR .o&_9e$8
;a_)oo9"n'/.onn"d COLOR .o&_9e$8
;a_)oo9"n'/!&da#e COLOR .o&_9e$8
;a_)oo9"n'/)oo9"d COLOR .o&_9e$8
;a_)oo9"n'/name%
ENDIF%
ENDSELECT%
AT LINE1SELECTION0
CALL SCREEN <""0
#:3 Create a sree) usi)5 $!r%ar' )a+i5ati!)
>C? SAP AG BC400 38
>'!uble:li( #00 i) t*e CA44 0C%((- D00 stateme)t?.
#:4 Mai)tai) sree) attributes
: 1)ter a 'esri&ti+e s*!rt te6t
: Set t*e )e6t sree) t! 0
#:5 3ay!ut
: Na+i5ate t! t*e Gra&*ial 3ay!ut 1'it!r
: C*!!se t*e ict!Progra" #iel$s i!)
: 1)ter 037->B++:
: C*!!se t*e %et #ro" ictionary i!)
: Selet t*e $iel's y!u %a)t
*!!se &nter t! !)$irm- a)' 'ra5 t*ese $iel's t! t*e sree)

: #st Bl!(E
Copy key feldsE CARRID6 CONNID6 FLDATE6 a)' OO@ID
%it* $iel' )ames
: ")' Bl!(E
Copy customer name -A)(
%it*!ut a $iel' )ame >*!!se t*e Witho't te(t ra'i! butt!)?
: 3r' Bl!(E
C!&y t*e feldsE CUSTOMID6 CUSTTYPE6 SMO@ER6 CLASS6
LOCCURAM- a)' LOCCUR@EY
%it* $iel' )ames
#:6 C*a)5e t*e $iel' attributes :
$!r e6am&le- by '!uble:li(i)5 t*e i)&ut $iel'
: C*a)5e t*e attributesE
: 0*e $iel's CA%%239 C+--239 *43AT(- B++:23- a)' C10T+)23
s*!ul' be 'is&laye' as !ut&ut $iel's >O$tp$t fiel! attribute?.
: 0*e ust!mer )ame -A)( s*!ul' be 'is&laye' )e6t t! t*e ust!mer )umber
%it*!ut te6t
>O$tp$t only attribute?.
: 0*e $iel's C10TT7P(- 0)+:(%- C4A00- 4+CC1%A)- a)'
4+CC1%:(7 s*!ul' be b!t* i)&ut:rea'y a)' !ut&ut:rea'y >t*e Inp$t3O$tp$t fiel!
attribute?.
.
>C? SAP AG BC400 38
0olutons
1nt: 0creens
Topc: 3ata Transport
)odel 0oluton: Program SAPC!""UDS/DYNPRO/
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DYNPRO_B <
<D <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_d$npo_)%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B8
a.#4#_.(an'e TYPE a.#"4_a-#( *AL+E B06B%
2 De+#n#t#on o+ sele$t#on s$%een
PARAMETERS pa_an-m TYPE ,)oo9/a'en.$n-m%
2 .o%Ma%ea +o% l#st
DATA ;a_)oo9"n' TYPE ,).400_)oo9"n'%
2 .o%Ma%ea +o% s#n(le ,ooM#n( to ,e $&an(e4
DATA .a/s,ooM TYPE s,ooM0
2 .o%Ma%ea +o% 4'np%o
TALES s4'n/,ooM0
START/OF/SELECTION%
2 sele$t#n( 4ata )s#n( an A4#$t#ona%' v#e. to (et t&e 4ata +%om
2 s,ooM an4 t&e $)stome% name +%om s$)stom
SELECT .a"d .onn"d !&da#e )oo9"d .-,#om"d name
FROM ,).400_)oo9"n'
INTO CORRESPONDING FIELDS OF ;a_)oo9"n'
W0ERE a'en.$n-m > pa_an-m%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_d",p&a$%
IF ,$/,-). > 0%
2 O)tp)t
WRITE= ? ;a_)oo9"n'/.a"d COLOR .o&_9e$8
;a_)oo9"n'/.onn"d COLOR .o&_9e$8
;a_)oo9"n'/!&da#e COLOR .o&_9e$8
;a_)oo9"n'/)oo9"d COLOR .o&_9e$8
;a_)oo9"n'/name%
HIDE: .a/,ooM#n(1$a%%#46
.a/,ooM#n(1$onn#46
.a/,ooM#n(1+l4ate6
.a/,ooM#n(1,ooM#46
.a/,ooM#n(1name0
>C? SAP AG BC400 40
ENDIF%
ENDSELECT%
AT LINE/SELECTION%
AUTHORITY1CHEC@ ORECT 9S/CARRID9
ID 9CARRID9 FIELD .a/,ooM#n(1$a%%#4
ID 9ACT;T9 FIELD a$tvt/$&an(e0
IF s'1s),%$ 7 "0
SELECT SINGLE 2
FROM s,ooM
INTO .a/s,ooM
3HERE $a%%#4 7 .a/,ooM#n(1$a%%#4
AND $onn#4 7 .a/,ooM#n(1$onn#4
AND +l4ate 7 .a/,ooM#n(1+l4ate
AND ,ooM#4 7 .a/,ooM#n(1,ooM#40
IF s'1s),%$ 7 "0
MO;E1CORRESPONDING .a/s,ooM TO s4'n/,ooM0
MO;E .a/,ooM#n(1name TO s4'n/,ooM1name0
CALL SCREEN 500%
ENDIF0
ELSE 0
MESSAGE ID 9C!""9 TYPE 9S9 NUMER 9"!E9
3ITH .a/,ooM#n(1$a%%#40
ENDIF0
>C? SAP AG BC400 4#
1nt: 0creens
Topc: *eld Transports and 0ubse.uent 0creen Processng
)odel 0oluton: Program SAPC!""UDS/DYNPRO/C
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DYNPRO_C <
<D <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_d$npo_.%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B8
a.#4#_.(an'e TYPE a.#"4_a-#( *AL+E B06B%
2 De+#n#t#on o+ sele$t#on s$%een
PARAMETERS pa_an-m TYPE ,)oo9/a'en.$n-m%
2 .o%Ma%ea +o% l#st
DATA ;a_)oo9"n' TYPE ,).400_)oo9"n'%
2 .o%Ma%ea +o% s#n(le ,ooM#n( to ,e $&an(e4
DATA ;a_,)oo9 TYPE ,)oo9%
2 .o%Ma%ea +o% 4'np%o
TABLES ,d$n_)oo9%
2 va%#a,le +o% +)n$t#on $o4e o+ )se% a$t#on
DATA oM/$o4e LI@E s'1)$omm0
START/OF/SELECTION%
2 sele$t#n( 4ata )s#n( a 4#$t#ona%' v#e. to (et t&e 4ata +%om
2 s,ooM an4 t&e $)stome% name +%om s$)stom
SELECT .a"d .onn"d !&da#e )oo9"d .-,#om"d name
FROM ,).400_)oo9"n'
INTO CORRESPONDING FIELDS OF ;a_)oo9"n'
W0ERE a'en.$n-m > pa_an-m%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_d",p&a$%
IF ,$/,-). > 0%
2 O)tp)t
WRITE= ? ;a_)oo9"n'/.a"d COLOR .o&_9e$8
;a_)oo9"n'/.onn"d COLOR .o&_9e$8
;a_)oo9"n'/!&da#e COLOR .o&_9e$8
;a_)oo9"n'/)oo9"d COLOR .o&_9e$8
;a_)oo9"n'/name%
0IDE= ;a_)oo9"n'/.a"d8
;a_)oo9"n'/.onn"d8
>C? SAP AG BC400 4"
;a_)oo9"n'/!&da#e8
;a_)oo9"n'/)oo9"d8
;a_)oo9"n'/name%
ENDIF%
ENDSELECT%
CLEAR ;a_)oo9"n'%
AT LINE/SELECTION%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_.(an'e%
IF ,$/,-). > 0%
SELECT SINGLE <
FROM ,)oo9
INTO ;a_,)oo9
W0ERE .a"d > ;a_)oo9"n'/.a"d
AND .onn"d > ;a_)oo9"n'/.onn"d
AND !&da#e > ;a_)oo9"n'/!&da#e
AND )oo9"d > ;a_)oo9"n'/)oo9"d%
IF ,$/,-). > 0%
MO*E/CORRESPONDING ;a_,)oo9 TO ,d$n_)oo9%
MO*E ;a_)oo9"n'/name TO ,d$n_)oo9/name%
CALL SCREEN 500%
ENDIF%
ELSE %
MESSAGE ID BBC400B TYPE BSB N+MBER B04JB
WIT0 ;a_)oo9"n'/.a"d%
ENDIF%
CLEAR= ;a_,)oo98 ;a_)oo9"n'%
<D//////////////////////////////////////////////////////////////<
<D Mod-&e CLEAR_OK_CODE O+TP+T <
<D//////////////////////////////////////////////////////////////<
<D #e1# <
<D//////////////////////////////////////////////////////////////<
MODULE $lea%/oM/$o4e OUTPUT0
CLEAR oM/$o4e0
ENDMODULE0 5 CLEAR/O@/CODE OUTPUT
<D//////////////////////////////////////////////////////////////<
<D Mod-&e +SER_COMMAND_0500 INP+T <
<D//////////////////////////////////////////////////////////////<
<D #e1# <
<D//////////////////////////////////////////////////////////////<
MODULE )se%/$omman4/"<"" INPUT0
CASE oM/$o4e0
3HEN 9AC@90
LEA;E TO SCREEN "0
3HEN 9SA;E90
MO;E1CORRESPONDING s4'n/,ooM TO .a/s,ooM0
MESSAGE ID 9C!""9 TYPE 9I9 NUMER 9"W"90
LEA;E TO SCREEN "0
>C? SAP AG BC400 43
ENDCASE0
ENDMODULE0 5 USER/COMMAND/"<"" INPUT
>C? SAP AG BC400 44
+2
SAP AG 2001
Creating inter$aces using the (enu Painter &ith the
subob6ects:
Title
(enu bar
Standard toolbar
Application toolbar
Function key assign%ent
Contents:
4nter$aces
>C? SAP AG BC400 #
12.2
SAP AG 2001
At the conclusion o$ this unit0 you &ill be able to:
4nter$aces: <nit 7b6ecti"es
Create a <4 title
Create a <4 status $or a list and a screen that
contains the $ollo&ing subob6ects:
(enu bar
Standard toolbar
Application toolbar
Function key assign%ent
>C? SAP AG BC400 "
12.3
SAP AG 2001
7"er"ie&: Screen
Flight data 9dit oto Syste% :elp
Bel$ F1
#hoose F2
Back F3
!
!
!
(enu bar
Standard toolbar
Application toolbar
Eey assign%ent
768 tit%e
SET TITLEAR KnL0
768 stat&s
SET PF1STATUS KnL0
0*e sree) !)tai)s t*e $!ll!%i)5 eleme)tsE
0*e ttle bar !)tai)s t*e title !$ t*e urre)t sree).
0*e menu bar !)tai)s e6&a)'able me)us.
0*e menus !)tai) t*e e6eutable $u)ti!)s $!r t*e urre)t &r!5ram. Me)us a) als! !)tai)
subme)us >asa'i)5 me)us?. 0*e me)us &ystem a)' *elp a) be $!u)' !) e+ery sree) i) R/3 a)'
al%ays !)tai) t*e same $u)ti!)s. Neit*er !$ t*ese me)us may be *a)5e' !r *i''e).
0*e standard toolbar !)tai)s i!)s $!r $reBue)tly use' $u)ti!)s. 0*e R/3 sta)'ar' t!!lbar al%ays
!)tai)s t*e same i!)s %it* sta)'ar' $u)ti!)s assi5)e' t! t*em. 9u)ti!)s t*at a))!t be e6eute'
!) t*e urre)t sree) are 5raye' !ut.
0*e functon key assgnment a) be 'is&laye' by ri5*t:li(i)5. /'eally- y!u s*!ul' be able t!
e6eute all me)u $u)ti!)s usi)5 $u)ti!) (eys as %ell.
0*e applcaton toolbar !)tai)s i!)s a)' &us*butt!)s $!r $reBue)tly use' $u)ti!)s !) a
&artiular sree).
1a* &r!5ram is reate' %it* a) i)ter$ae !)tai)i)5 all !$ t*e ab!+e t!!ls a)' !bGets. Di$$ere)t
+ie%s !$ t*is i)ter$ae are t*e) reate' $!r i)'i+i'ual sree)sE G;/ status.
>C? SAP AG BC400 3
12.4
SAP AG 2001
7b6ecti"e: 9'a%ple Progra% 4nter$ace

Print
Sa"e > send
Sa"e CtrlBS
9'it
7$$ice
-eport tree
File!!!
Flight data 9dit oto Syste% :elp
Print
Sa"e > send
Sa"e CtrlBS
9'it
7$$ice
-eport tree
File!!!
Flight data 9dit oto Syste% :elp
2ist
Screen
0+00
@!u %ill 'e$i)e a) i)ter$ae $!r t*e e)tire e6am&le &r!5ram. 0*e +ari!us statuses %ill *a+e t*e
$!ll!%i)5 attributesE
0*e same me)u bar %ill be a+ailable !) b!t* t*e list a)' t*e sree). O)ly t*!se me)u $u)ti!)s t*at
a) be e6eute' %ill a&&ear i) bla(.
/) t*e sta)'ar' t!!lbar- !)ly t*!se $u)ti!)s t*at a) be e6eute' %ill a&&ear i) !l!r. Sree)
$u)ti!)ality %ill )!t be altere' i) a)y %ay.
0*e sree) %ill *a+e its !%) title.
>C? SAP AG BC400 4
12.5
SAP AG 2001
Create Status
Flight data 9dit oto Syste% :elp Flight data 9dit oto Syste% :elp
SET PF1STATUS 9LIST/STATUS90
2ist Screen
@!u set a status usi)5 t*e SET PF/STAT+S stateme)t be$!re t*e 'is&lay !$ t*e sree).
0*is status remai)s +ali' $!r all subseBue)t sree)s &r!+i'e' y!u '! )!t set a )e% status.
>C? SAP AG BC400 5
12.6
SAP AG 2001
Setting a Status $or 9ach Screen
Flight data 9dit oto Syste% :elp
Flight data 9dit oto Syste% :elp
2ist Screen
SET PF1STATUS 9DYNP/<""90 SET PF1STATUS 9DYNP/<""90 SET PF1STATUS 9LIST/STATUS90 SET PF1STATUS 9LIST/STATUS90
/) t*e e6am&le- a se&arate status is set $!r ea* sree). <!%e+er- t*e same $u)ti!)s are t! be
a+ailable i) e+ery status.
N!t all $u)ti!)s are a&&r!&riate !) b!t* sree)sH $!r e6am&le t*e &ri)t $u)ti!) is use$ul !)ly !) t*e
list.
De&e)'i)5 !) %*et*er it is a list !r a sree)- t*e $u)ti!)s s*!ul' be bla( >ati+e !r e6eutable? !r
5ray >i)ati+e !r )!t e6eutable?.
>C? SAP AG BC400 6
12.7
SAP AG 2001
-e$erences to Subob6ects
Flight data 9dit Flight data 9dit oto oto Syste% :elp Syste% :elp
(enu bar (enu bar
Standard toolbar>$unction key assign%ent Standard toolbar>$unction key assign%ent
Application toolbar Application toolbar
SET PF1STATUS 9DYNP/<""90 SET PF1STATUS 9LIST/STATUS90
Flight data 9dit Flight data 9dit oto oto Syste% :elp Syste% :elp
9!r t*e sa(e !$ sim&le mai)te)a)e- %e '! )!t %a)t t! reate t*e sub!bGets me)u bar a)' sta)'ar'
t!!lbar %it* $u)ti!) (eys a)' a&&liati!) t!!lbars $!r t*e sree) status a5ai).
0*ere$!re %e sim&ly re$ere)e t*e sub!bGets alrea'y reate' i) t*e !)te6t !$ t*e list status a)'
'e$i)e- $r!m t*e &!i)t !$ +ie% !$ t*e status- %*i* $u)ti!)s are ati+e !r i)ati+e.
>C? SAP AG BC400 A
12.8
SAP AG 2001
Creating <4 Statuses $or 2ists
G30 "n!er-ace: S!a!us /0S,AS,A,3S oes no! e2"s!.
Do &ou ;an! !o crea!e !he ob+ec!K
#ancel
Create ob6ect
Ces ?o
START1OF1SELECTION0
SET PF1STATUS 0
Create status
22222
/0S,AS,A,3S
S!a!us -or -l"(h! l"s!
Pro(ra*
S!a!us
S!a!us a!!r"bu!es
Shor! !e2!
S!a!us !&$e
8nl"ne s!a!us
D"alo( bo2
#on!e2! *enu
9LIST/STATUS9
@!u a) reate !r mai)tai) statuses i) t*ree 'i$$ere)t %aysE
By usi)5 t*e ob,ect lst n t*e ObGet Na+i5at!r
By usi)5 for#ard na$gaton i) t*e ABAP 1'it!r-
By usi)5 t*e )enu Panter.
.*e) reati)5 a status y!u a) reate a )e% me)u bar- a&&liati!) t!!lbar- a)' (ey assi5)me)t >t!&
'!%)?- a'!&t e6isti)5 !bGets >b!tt!m u&?- !r use a !mbi)ati!) !$ b!t* met*!'s.
G;/ status )ames a) *a+e a ma6imum !$ "0 *araters.
By *!!si)5 a status ty&e- y!u 'etermi)e %*et*er- $!r i)sta)e- a status re$ers t! a )!rmal sree) !r a
'ial!5 b!6. De&e)'i)5 !) t*e status ty&e- y!u *a+e a *!ie !$ 'i$$ere)t ty&es !$ $u)ti!)s.
>C? SAP AG BC400 8
12.9
SAP AG 2001
Ad6usting Statuses
Ad6ust status te%plate
24STCSTAT<S
4nclude te%plate in
status
Te%plate status!!!
2ist status
Selection screen
!!!
H Standard list $unctions are copied
H Standard description $or %enu bar
and key settings is entered
(enu bar
2ine selection list
i
i
i
Application toolbar
2ine selection list
Function keys
2ist 9dit oto
2ist o$ Functions
Standard list $unctions Standard list $unctions
Standard description Standard description
Aou can change the
description
0*e A!$st template $u)ti!) i) t*e E1tras me)u all!%s y!u t! i)lu'e sta)'ar'iCe' $u)ti!) !'es
i) y!ur status. 0*is $u)ti!) als! all!%s y!u t! i)lu'e !bGets $r!m a status !$ y!ur *!ie i) t*e
e6isti)5 status. @!u a) *!!se )!rms $!r list statuses a)' seleti!) sree)s !r use a)y status y!u
%a)t $r!m a)!t*er ABAP &r!5ram.
/$ y!u *!!se A!$st stat$s +ist stat$s- t*e system 5e)erates sta)'ar' list $u)ti!)s a)' t*e
sta)'ar' e)tries $!r t*e me)u a)' a&&liati!) t!!lbar- a)' t*e assi5)me)t !$ $u)ti!)s t! $u)ti!)
(eys. 1a* me)u bar- a&&liati!) t!!lbar- a)' $u)ti!) (ey setti)5 is als! 5i+e) a 'e$ault )ame-
%*i* y!u s*!ul' re&lae %it* a) e6&la)at!ry s*!rt te6t.
@!u a) 'is&lay t*e 5e)erate' $u)ti!)s by *!!si)5 t*e Information i!).
>C? SAP AG BC400 8
12.10
SAP AG 2001
Status in the (enu Painter: Function Eeys
F2
F/
!!!
Standard toolbar
NEX AC@ R3
PIC@
NPRI NSC P11
(enu bar
Flight data %enu bar
Application toolbar
i
Function keys
Flight data $unction keys
i
Flight data application toolbar
P1

PJ PJJ
i
@
NSCJ
Choose
-eco%%ended $unction key assign%ents
Freely assignable $unction keys
F)
F*
!!!
K000L Select
Sey assi5)me)t a) be 'i+i'e' i)t! t*ree areasE
0tandard toolbarE Certai) $u)ti!) !'es are &re'e$i)e' $!r t*e $u)ti!)s &ave- Back- E1it
pro'ram- "ancel- Print- $!r t*e &croll i!)s- a)' $!r t*e Enter &us*butt!). Sim&ly assi5) t*ese
!'es t! t*e sta)'ar' t!!lbar i!) a)' t*ey %ill be aut!matially assi5)e' t! t*eir !rres&!)'i)5
sta)'ar' $u)ti!) (eys.
%ecommended functon key assgnment: 0*e system &r!&!ses t*e $u)ti!)s t*at y!u s*!ul'
5e)erally assi5) t! s&ei$i $u)ti!) (eys.
*reely assgnable functon keys: 0*e system lists all t*e remai)i)5 $u)ti!) !'es t*at are )!t
assi5)e' by sta)'ar's. 9r!m t*is list- y!u a) *!!se a&&r!&riate $u)ti!) (eys $!r &r!5ram:
s&ei$i $u)ti!)s.
@!u a) als! 'e$i)e butt!)s !) a) a&&liati!) t!!lbar $!r $reBue)tly use' $u)ti!) (eys. 0*ese
&us*butt!)s a) *a+e i!)s !r te6t.
>C? SAP AG BC400 #0
12.11
SAP AG 2001
Statuses in the (enu Painter: (enu Bar
(enu bar
Flight data %enu bar
Application toolbar
i
Function keys
Flight data $unction keys
i
Flight data application toolbar
Flight data
Code Te't
9dit oto
Code Te't Code Te't
PIC@
NSC
NSCJ
R3
i
Choose
Find
Find ne't
Cancel
PRI
NEX
Back AC@
Print
Sa"e>send
9'it
O
/$ s! 'esire'- t*e system %ill su55est sta)'ar's $!r y!ur me)u bar. 0*ese a) als! be m!'i$ie'.
Me)u bars a) !)tai) u& t! ei5*t me)us. @!u a) 'e$i)e u& t! si6 !$ t*ese y!ursel$- but t*e &ystem
a)' *elp me)us are sta)'ar' a)' are a''e' automatcally by t*e system.
>C? SAP AG BC400 ##
12.12
SAP AG 2001
4ncluding 9'isting 9le%ents
(enu bar
SCREEN
SCREEN
i
i
i
2ist o$ Functions
8isplays e'isting
ob6ects and
allo&s you
to select the%
Application toolbar
SCREEN
Function keys
Create a )e% status $!r t*e sree) a)' use t*e i!) s*!%) i) t*e $i5ure t! 'is&lay all t*e me)u bars
a)' $u)ti!) (ey assi5)me)ts alrea'y 'e$i)e'. 0*e e6am&le &r!5ram 'is&lays !)ly !)e me)u bar !r
$u)ti!) (ey assi5)me)t.
D!uble:li( t*is t! re$ere)e t*e same me)u bar a)' $u)ti!) (ey assi5)me)t $!r t*e sree) status
as $!r t*e list status.
>C? SAP AG BC400 #"
12.13
SAP AG 2001
Setting Functions to Acti"e or 4nacti"e in the
Status
Function code
Flight data 9dit oto
Code Te't
+: Select $unction
code
2: Toggle bet&een acti"e and
inacti"e using the button
Back AC@
Application toolbar
Function keys
Flight data $unction keys
i
Flight data application toolbar
(enu bar
Flight data %enu bar
i
i
0! set status $u)ti!)s t! ati+e !r i)ati+e- &r!ee' as $!ll!%sE
S%it* t! t*e *a)5e m!'e !$ t*e status.
P!i)t t! t*e $u)ti!) !'e y!u %a)t t! ati+ate a)' *!!se Active Inactive !) t*e a&&liati!)
t!!lbar.
/) t*e e6am&le i) t*e 5ra&*i- %e are a''i)5 t*e SA*E $u)ti!)- %*i* is )!t a sta)'ar' list $u)ti!)-
t! t*e sta)'ar' t!!lbar a)' t*e ,li'ht !ata me)u. 0*e system i)$!rms us t*at %e are re$ere)i)5 t*e
me)u bar a)' sta)'ar' t!!lbar. /$ %e !)$irm t*e 'ial!5 b!6- t*e system aut!matially a''s t*e
SA*E $u)ti!) t! t*e me)u bar a)' sta)'ar' t!!lbar i) t*e list status a)' sets it t! i)ati+e.
0*e BACK a)' SA*E $u)ti!)s i) !ur e6am&le are e+aluate' i) t*e PA/ m!'ule
-,e_.ommand_0500.
>C? SAP AG BC400 #3
12.14
SAP AG 2001
Creating a <4 Title $or a Screen
MODULE stat)s/"<"" OUTPUT0
SET PF1STATUS 9DYNP/<""90
SET TITLEAR 9<""90
ENDMODULE0
Title code
Title
Flight connections
Sa"e
Pro(ra*
,"!le coe
,"!le
Create title
22222
100
#han(e -l"(h! !"*es
G30 "n!er-ace: ,"!le 100 oes no! e2"s!.
Do &ou ;an! !o crea!e !he ob+ec!K
#ancel
Create ob6ect
Ces ?o
9<""9
#on!"nue
@!u a) reate !r mai)tai) titles i) t*ree 'i$$ere)t %aysE
By usi)5 t*e ob,ect lst i) t*e Re&!sit!ry Br!%ser
By usi)5 for#ard na$gaton $r!m t*e ABAP 1'it!r
By usi)5 t*e )enu Panter
A G;/ title:)ame a) *a+e a ma6imum !$ "0 *araters.
-ote: /$ y!u reate t*e su55este' PBO m!'ule ,#a#-,_nnnn usi)5 $!r%ar' )a+i5ati!)- t*e SET
TITLEBAR B:::B stateme)t is aut!matially 5e)erate' i) t*e m!'ule. /t is i)ati+e. @!u a) use
t*is su55esti!) by erasi)5 t*e star a)' e)teri)5 t*e )umber !$ t*e title. N!% y!u a) reate t*e title
usi)5 $!r%ar' )a+i5ati!).
>C? SAP AG BC400 #4
12.15
SAP AG 2001
Aou are no& able to:
4nter$aces: <nit Su%%ary
Create a <4 title
Create a <4 status $or a list and a screen that
contains the $ollo&ing subob6ects:
(enu bar
Standard toolbar
Application toolbar
Function key assign%ent
>C? SAP AG BC400 #5
12.168nter9aces E$ercises
1nt: 2nterfaces
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Create user i)ter$aes $!r a &r!5ram
/)lu'e a G;/ status a)' G;/ title i) a &r!5ram
16te)' y!ur &r!5ram =C!""/>>/DYNPROE
0*e system is t! 'is&lay te6ts !rres&!)'i)5 t! t*e list a)' sree) i) t*e
title bar. @!u must s&ei$y t*e !rret status $!r t*e list a)' sree).
Program: =C!""/>>/DYNPRO
)odel soluton: SAPC!""UDS/DYNPRO/D
Template: SAPC!""UDS/DYNPRO/C
#:# 16te)' y!ur &r!5ram =C!""/>>/DYNPRO !r !&y t*e tem&late
SAPC!""UDS/DYNPRO/C t! t*e )e% &r!5ram =C!""/>>/DYNPRO/D.
#:" 4st status:
#:":# 9irst 'e$i)e a status $!r t*e list. Create t*e status >ty&eE 'ial!5
status? usi)5 $!r%ar' )a+i5ati!). /)lu'e t*e rele+a)t ABAP
stateme)t i) t*e &r!essi)5 bl!( START1OF1SELECTION. 0*e
status y!u reate must !rres&!)' t! t*e sta)'ar' list status. Create
a suitable $u)ti!) (ey assi5)me)t- a&&liati!) t!!lbar a)' me)u
bar. C*!!se E1tras A!$st templates +ist stat$s t! a'' t*e
sta)'ar' $u)ti!) !'es. C*a)5e t*e )ame !$ t*e le$t me)u list
$r!m +ist t! Bookin's.
#:":" A'' t*e $u)ti!) !'e SA71- %*i* y!u must be able t! aess usi)5
t*e &ave i!) i) t*e sta)'ar' t!!lbar- t! t*e $u)ti!) (ey assi5)me)t. @!u must als!
be able t! *!!se SA71 usi)5 a) e)try i) t*e Bookin's me)u list. Deati+ate t*e
SA71 $u)ti!) i) t*is status.
#:3 0creen status:
#:3:# Assi5) a status >ty&eE 'ial!5 status? t! t*e sree). 0! '! s!- i)lu'e t*e
rele+a)t ABAP stateme)t i) a m!'ule at t*e &!i)t !$ t*e PROCESS BEFORE
O+TP+T. D! not reate t*e $u)ti!) (ey assi5)me)t- a&&liati!) t!!lbar- a)' me)u
>C? SAP AG BC400 #6
bar a5ai)- but i)stea' re$ere)e t*e !bGets reate' i) t*e last ste& >#:":"?. Ati+ate
t*e $u)ti!) !'es BACK a)' SA*E i) t*is status a)' ati+ate t*e i)ter$ae.
#:4 O&ti!)al :
Assi5) a G;/ title t! t*e basi list a)' sree) >usi)5 $!r%ar' )a+i5ati!)?.
>C? SAP AG BC400 #A
12.178nter9aces So%&tions
1nt: 2nterfaces
#:":# /) t*e &r!5ram s!ure !'e- a'' t*e SET PF/STAT+S BLISTB stateme)t t! t*e
START/OF/SELECTION e+e)t.
>-oteE 0e6t bet%ee) t*e t%! a&!str!&*es must be i) u&&erase?.
/) t*e &r!5ram li)e SET PF/STAT+S BLISTB- '!uble:li( t*e LIST status
)ame.
0*e system 'is&lays a 'ial!5 b!6 !)tai)i)5 t*e %!r's O0*e G;/ i)ter$ae status
T3/S0F '!es )!t e6ist. D! y!u %a)t t! reate itKP
C*!!se 9es t! !)$irm.
1)ter t*e s*!rt te6t.
C*!!se t*e status ty&e Dialo' stat$s.
C*!!se E1tras A!$st template +ist stat$s
A'Gust t*e )ame !$ t*e me)u bar a)' $u)ti!) (ey assi5)me)t t! suit y!ur !%)
)ee's.
C*a)5e t*e )ame !$ t*e me)u +ist t! Bookin's.
#:":" /) t*e sta)'ar' t!!lbar- e)ter t*e $u)ti!) !'e SA*E ab!+e t*e &ave i!) a)'
*!!se Enter. D!uble:li( t! !&e) t*e Bookin's me)u- e)ter SA*E as a $u)ti!)
!'e- a)' assi5) t*e te6t &ave bookin's t! it.
C*!!se Active Inactive t! 'eati+ate SA*E $!r t*is status.
Ati+ate t*e status.
#:3 G!t! t*e *a)5e m!'e !$ sree) #00. >Ri5*t:li( !) t*e sree) )umber i) t*e
!bGet list !$ t*e &r!5ram.? /) t*e $l!% l!5i- a'' t*e MODULE
set/stat)s/"<"" stateme)t t! t*e PROCESS BEFORE O+TP+T e+e)t.
D!uble:li( t*e )ame !$ t*e m!'ule t! reate t*e m!'ule >usi)5 $!r%ar'
)a+i5ati!)?- !)$irm t*e 'ial!5 b!6 by *!!si)5 )es- *!!se 7ain pro'ram i) t*e
subseBue)t 'ial!5 b!6- a)' a'' t*e $!ll!%i)5 s!ure !'eE
2U111111111111111111111111111111111111111111112
2U Mod-&e SET_STAT+S_0500 O+TP+T
2U111111111111111111111111111111111111111111112
MOD+LE ,e#_,#a#-,_0500 O+TP+T%
SET PF1STATUS 9DYNPRO90
ENDMOD+LE%
Create t*e status usi)5 $!r%ar' )a+i5ati!). D!uble:li( BDYNPROB i) t*e SET
PF/STAT+S BDYNPROB stateme)t.
C*!!se 9es t! !)$irm t*e 'ial!5 b!6.
/) t*e )e6t 'ial!5 b!6- e)ter a s*!rt te6t a)' *!!se Dialo' stat$s.
Plae t*e urs!r !) t*e menu bar a)' *!!se t*e re$ere)e i!). Create t*e
re$ere)e t! t*e e6isti)5 me)u bar by '!uble:li(i)5.
>C? SAP AG BC400 #8
P!i)t t! ,$nction keys a)' *!!se t*e re$ere)e i!). Create t*e re$ere)e t! t*e
e6isti)5 $u)ti!) (ey assi5)me)t by '!uble:li(i)5.
Ati+ate t*e t%! $u)ti!)s SA*E a)' BACK by &!i)ti)5 t! t*e $u)ti!) !'e i) t*e
me)u !r !) t*e $u)ti!) (ey assi5)me)t a)' *!!si)5 t*e Activate i!)
Ati+ate t*e status.
Ati+ate t*e sree).
#:4 16te)' t*e &r!5ram s!ure !'e i) t*e e+e)t
START/OF/SELECTION%=
SET PF/STAT+S BLISTB%
SET TITLEAR 9LIST90
Create t*e title usi)5 $!r%ar' )a+i5ati!) a)' e)ter t*e te6t i) t*e 'ial!5 b!6.
16te)' t*e s!ure !'e !$ t*e SET/STATUS/"<"" m!'uleE
2U1111111111111111111111111111111111111111112
2U Mod-&e SET_STAT+S_0500 O+TP+T
2U1111111111111111111111111111111111111111112
MOD+LE ,e#_,#a#-,_0500 O+TP+T%
SET PF/STAT+S BDYNPROB%
SET TITLEAR 9DYNPRO90
ENDMOD+LE%
Create t*e title usi)5 $!r%ar' )a+i5ati!) a)' e)ter t*e te6t i) t*e 'ial!5 b!6.
Ati+ate t*e status a)' t*e &r!5ram.
>C? SAP AG BC400 #8
0ource code for the program SAPC!""UDS/DYNPRO/D
<D//////////////////////////////////////////////////////////////<
<D Repo# SAPBC400+DS_DYNPRO_D <
<D <
<D//////////////////////////////////////////////////////////////<
REPORT ,ap).400-d,_d$npo_d%
CONSTANTS= a.#4#_d",p&a$ TYPE a.#"4_a-#( *AL+E B07B8
a.#4#_.(an'e TYPE a.#"4_a-#( *AL+E B06B%
2 De+#n#t#on o+ sele$t#on s$%een
PARAMETERS pa_an-m TYPE ,)oo9/a'en.$n-m%
2 .o%Ma%ea +o% l#st
DATA ;a_)oo9"n' TYPE ,).400_)oo9"n'%
2 .o%Ma%ea +o% s#n(le ,ooM#n( to ,e $&an(e4
DATA ;a_,)oo9 TYPE ,)oo9%
2 .o%Ma%ea +o% 4'np%o
TABLES ,d$n_)oo9%
2 va%#a,le +o% +)n$t#on $o4e o+ )se% a$t#on
DATA= o9_.ode LIKE ,$/-.omm%
START/OF/SELECTION%
SET PF1STATUS 9LIST90
SET TITLEAR 9LIST90
2 sele$t#n( 4ata )s#n( a 4#$t#ona%' v#e. to (et t&e 4ata +%om
2 s,ooM an4 t&e $)stome% name +%om s$)stom
SELECT .a"d .onn"d !&da#e )oo9"d .-,#om"d name
FROM ,).400_)oo9"n'
INTO CORRESPONDING FIELDS OF ;a_)oo9"n'
W0ERE a'en.$n-m > pa_an-m%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_d",p&a$%
IF ,$/,-). > 0%
2 O)tp)t
WRITE= ? ;a_)oo9"n'/.a"d COLOR .o&_9e$8
;a_)oo9"n'/.onn"d COLOR .o&_9e$8
;a_)oo9"n'/!&da#e COLOR .o&_9e$8
;a_)oo9"n'/)oo9"d COLOR .o&_9e$8
;a_)oo9"n'/name%
0IDE= ;a_)oo9"n'/.a"d8
;a_)oo9"n'/.onn"d8
;a_)oo9"n'/!&da#e8
;a_)oo9"n'/)oo9"d8
;a_)oo9"n'/name%
ENDIF%
ENDSELECT%
CLEAR ;a_)oo9"n'%
AT LINE/SELECTION%
A+T0ORITY/C0ECK OBEECT BS_CARRIDB
ID BCARRIDB FIELD ;a_)oo9"n'/.a"d
ID BACT*TB FIELD a.#4#_.(an'e%
IF ,$/,-). > 0%
>C? SAP AG BC400 "0
SELECT SINGLE <
FROM ,)oo9
INTO ;a_,)oo9
W0ERE .a"d > ;a_)oo9"n'/.a"d
AND .onn"d > ;a_)oo9"n'/.onn"d
AND !&da#e > ;a_)oo9"n'/!&da#e
AND )oo9"d > ;a_)oo9"n'/)oo9"d%
IF ,$/,-). > 0%
MO*E/CORRESPONDING ;a_,)oo9 TO ,d$n_)oo9%
MO*E ;a_)oo9"n'/name TO ,d$n_)oo9/name%
CALL SCREEN 500%
ENDIF%
ELSE %
MESSAGE ID BBC400B TYPE BSB N+MBER B04JB
WIT0 ;a_)oo9"n'/.a"d%
ENDIF%
CLEAR= ;a_,)oo98 ;a_)oo9"n'%
<D//////////////////////////////////////////////////////////////<
<D Mod-&e STAT+S_0500 O+TP+T <
<D//////////////////////////////////////////////////////////////<
< #e1# <
<///////////////////////////////////////////////////////////////<
MOD+LE STAT+S_0500 O+TP+T%
SET PF1STATUS 9DYNPRO90
SET TITLEAR 9DYNPRO9% Kop#"ona&
ENDMOD+LE% K STAT+S_0500 O+TP+T
<D//////////////////////////////////////////////////////////////<
<D Mod-&e CLEAR_OK_CODE O+TP+T <
<D//////////////////////////////////////////////////////////////<
<D #e1# <
<///////////////////////////////////////////////////////////////<
MOD+LE .&ea_o9_.ode O+TP+T%
CLEAR o9_.ode%
ENDMOD+LE% K CLEAR_OK_CODE O+TP+T
>C? SAP AG BC400 "#
<D//////////////////////////////////////////////////////////////<
<D Mod-&e +SER_COMMAND_0500 INP+T <
<D//////////////////////////////////////////////////////////////<
<D #e1# <
<D//////////////////////////////////////////////////////////////<
MOD+LE -,e_.ommand_0500 INP+T%
CASE o9_.ode%
W0EN BBACKB%
LEA*E TO SCREEN 0%
W0EN BSA*EB%
MO*E/CORRESPONDING ,d$n_)oo9 TO ;a_,)oo9%
MESSAGE ID BBC400B TYPE BIB N+MBER B0L0B%
LEA*E TO SCREEN 0%
ENDCASE%
ENDMOD+LE% K +SER_COMMAND_0500 INP+T
>C? SAP AG BC400 ""
+3
SAP AG 2001
SAP<4 $or :T(2 and 9asy Web Transaction
(aking selected transactions a"ailable $or the Web
(aking $unctions a"ailable in a Web=speci$ic layout
Contents:
7utlook: 8e"eloping 4nternet Applications
>C? SAP AG BC400 #
13.2
SAP AG 2001
Create a transaction code $or an 9asy Web
Transaction
Create an 4nternet ser"ice
Publish an 4nternet ser"ice
Test an 9asy Web Transaction using a Web
bro&ser
At the conclusion o$ this unit0 you &ill be able to:
7utlook: 8e"eloping 4nternet Applications
>C? SAP AG BC400 "
13.3
SAP AG 2001
Ai%: ABAP Progra% <ser 8ialogs in a Web Bro&ser
Progra%
start


ABAP runti%e syste%
ABAP progra%
@
!!!
Web Bro&ser
ht%l
ht%l
Action
ht%l
0! lau)* a) SAP &r!5ram $r!m a .eb br!%ser- y!u *a+e t! 5e)erate <0M3 &a5es $!r t*e sree)s.
@!u a) 5e)erate t*ese aut!matially.
>C? SAP AG BC400 3
13.4
SAP AG 2001
4nternet Transaction Ser"er
Progra%
start


ABAP runti%e syste%
ABAP progra%
4TS
!!!
Web Bro&ser
ht%l
ht%l
ht%l
0*e /)ter)et 0ra)sati!) Ser+er arries !ut t*is tas(.
>C? SAP AG BC400 4
13.5
SAP AG 2001
4TS Progra%%ing (odels
Business logic 8ialog logic Screen layout
Screen Screen
ABAP progra% ABAP progra%
H H (odule (odule
H H Function %odule Function %odule
H H BAP4 BAP4
:T(2
B<S4#9SS
=
Te%plate
ABAP progra% ABAP progra%
H H (odule (odule
H H Function %odule Function %odule
H H BAP4 BAP4
Screen Screen
:T(2
B<S4#9SS
=
Te%plate
H H -FC=co%patible -FC=co%patible
$unction %odule $unction %odule
H H BAP4 BAP4
4TS $lo& $ile
SAP<4
$or
:T(2
9asy
Web
Transaction
4TS
Flo&
2ogic
0*ere are t*ree &r!5rammi)5 m!'els $!r reati)5 i)ter)et a&&liati!)sE
0AP512 for 6T)4E <ere a) ABAP &r!5ram %it* user 'ial!5s &r!+i'es t*e basis $!r t*e 'is&lay-
'ial!5 l!5i- a)' busi)ess l!5i. 0*e lay!ut is 5e)erate' aut!matially $r!m t*e sree)
i)$!rmati!). 0*e a&&eara)e i) t*e .eb br!%ser !)tai)s e6atly t*e same eleme)ts as t*e sree).
(asy Web TransactonE O)ly t*e busi)ess l!5i a)' t*e 'ial!5 l!5i are !&ie' $r!m t*e ABAP
&r!5ram. @!u a) t*e) *a)5e t*e lay!ut !$ t*e &a5e.
2T0 *lo# 4ogcE O)ly t*e &ure busi)ess l!5i is e6eute' i) a) ABAP &r!5ram- %*i* a) be
alle' e6ter)ally : t*is is usually a BAP/ !r a) R9C:!m&atible $u)ti!) m!'ule. 0*e 'ial!5 l!5i
a)' lay!ut are 'e$i)e' !) t*e /0S.
0*e $!ll!%i)5 &a5es 'isuss t*e &r!5rammi)5 m!'els SAPG;/ $!r <0M3 a)' 1asy .eb
0ra)sati!) i) m!re 'etail.
>C? SAP AG BC400 5
13.6
SAP AG 2001
SAP<4 $or :T(2 and 9asy Web Transaction
ITS ITS
Web bro&ser Web bro&ser
SAP Syste%
SAP<4 $or :T(2:
The 4TS generates a
:T(2
B<S4#9SS
te%plate
dyna%ically
Publish
9asy Web Transaction:
The de"eloper generates a
static :T(2
B<S4#9SS
te%plate
SAP G;/ $!r <0M3 5e)erates <0M3 'y)amially $r!m t*e rele+a)t SAP sree)s. 9eatures !$ t*is
&r!ess areE
Sim&le- SAP sree):base' lay!ut
SAP sree) eleme)ts >su* as te6t !r i)&ut $iel's? are ma&&e' #E# t! t*e $iel's !) t*e 5e)erate'
<0M3 &a5e
N! !t*er <0M3 eleme)ts are a+ailable
N! $urt*er 'e+el!&me)t is )eessary
/) t*e .eb br!%ser- t*e user must e)ter t*e $!l!%i)5 &at*E
http:&&Eser$erF:EportF&EpathF&#gate&Eser$ce>nameF&
.it* 1asy .eb 0ra)sati!) t*e 'e+el!&er reates stati 6T)4
B102-(00
templates. 9eatures !$ t*is
&r!ess areE
9le6ible 'esi5) !$ t*e lay!ut. 0*e sree) i)$!rmati!) ser+es as a basis $!r t*e tem&lateH *!%e+er-
y!u a) a'Gust t*e tem&late t! suit i)'i+i'ual )ee's >$!r e6am&le- *i'e !m&le6 $u)ti!)s !r
i)lu'e a''iti!)al M/M1 !bGets?.
@!u a) a'' a''iti!)al $u)ti!)s.
9urt*er 'e+el!&me)t )eessaryE
@!u )ee' t! reate- e'it- a)' &ublis* <0M3 tem&lates. @!u als! )ee' t! im&leme)t a''iti!)al
$u)ti!)s y!ursel$.
>C? SAP AG BC400 6
13.7
SAP AG 2001
Change re5uest
Sa"e
8e"elop%ent class
DBC400CVV
Progra% na%e
DBC400CVVVVVVVVVV
Transaction classi$ication:
Pro$essional <ser Transaction
9asy Web Transaction
Creating 9WT Transaction Codes
Transaction code
Short te't
4nitial ob6ect:
Progra% and screen ,dialog transaction.
Progra% and selection screen ,report transaction.
Custo%er na%espace
Ser"ice
/) t*e ObGet Na+i5at!r- !&e) t*e !bGet list !$ t*e &r!5ram $!r %*i* y!u %a)t t! reate a) 1asy
.eb 0ra)sati!). /) t*e a&&r!&riate !)te6t me)u- *!!se
"reate Transaction)
1)ter a tra)sati!) !'e. C!m&ly %it* t*e ust!mer )ames&ae !)+e)ti!)s. 1)ter a s*!rt te6t) /$ t*e
&r!5ram is a) e6eutable &r!5ram- *!!se Pro'ram an! selection screen -.eport Transaction))
O) t*e )e6t sree)- e)ter t*e )ame !$ t*e &r!5ram. C*!!se Easy Web Transaction $!ll!%e' by &ave)
O) t*e )e6t sree)- e)ter t*e )ame !$ t*e 'e+el!&me)t lass t! %*i* t*e tra)sati!) !'e is t! be
assi5)e'.
O) t*e )e6t sree)- assi5) t*e *a)5e reBuest.
>C? SAP AG BC400 A
13.8
SAP AG 2001
Creating an 4nternet Ser"ice $or 9WT
7b6ect #a"igator 7b6ect #a"igator
DBC400C9WT
4nternet Ser"ice
8isplay 8isplay
9asy Web Transaction
Transaction code
4TS %i'ed %ode
Web application
start te%plate
Web9A$$l"ca!"on Bu"ler: #rea!e ser)"ce
4nternet Ser"ice
DBC400C9WT
Ser"ice DBC400C9WT does not e'ist!
8o you &ant to create the ob6ect@
Aes Aes
O)e %ay !$ ma(i)5 a tra)sati!) a+ailable !+er t*e /0S 'iretly is t! reate a ser+ie $ile. 0*e
ser+ie $ile !)tai)s t*e i)$!rmati!) i)'iati)5 %*i* tra)sati!) is t! be starte'.
@!u a) reate a ser+ie $!r a tra)sati!) i) t*e ObGet Na+i5at!r. C*!!se Internet &ervices a)' e)ter
a )ame $!r y!ur ser+ie. Ma(e sure y!u !m&ly %it* t*e ust!mer )ames&ae !)+e)ti!)s. /)ter)et
ser+ies are !$te) 5i+e) t*e same )ame as t*e tra)sati!) ass!iate' %it* t*em. @!u !ul'- *!%e+er-
use a 'i$$ere)t )ame- &artiularly i$ y!u are reati)5 se+eral ser+ies $!r t*e same tra)sati!).
C*!!se Enter !r t*e Display i!). /$ t*ere is )! ser+ie sa+e' u)'er t*e )ame y!u *a+e e)tere'-
y!u a) !)$irm t*e Buery %it* Enter.
/) t*e 'ial!5 b!6 t*at a&&ears- *!!se Easy Web Transaction a)' e)ter t*e tra)sati!) !'e.
Sa+e t*e ser+ie.
-ote:
/$ y!u *!!se IT& mi1e! mo!e, y!u '! )!t )ee' t! 5e)erate a stati <0M3 &a5e $!r ea* sree). /$ a
sree) is )!t ass!iate' %it* a) <0M3 &a5e- t*e SAPG;/ $!r <0M3 5e)erates t*e &a5e
'y)amially at ru)time.
>C? SAP AG BC400 8
13.9
SAP AG 2001
Creating Te%plates
7b6ect #a"igator 7b6ect #a"igator
DBC400C9WT
4nternet Ser"ice
DBC400C9WT
The%e //
!!!
Create
Web A$$l"ca!"on Bu"ler: #rea!e !e*$la!e
4nternet Ser"ice
The%e
DBC400C9WT
Create :T(2 $ro% screen
:T(2 te%plate na%e
Progra% na%e
Screen nu%ber
!!!
Sa"e
!!!
!!!
Te%plate
0! reate tem&lates $!r a ser+ie- *!!se "reate Template i) t*e !)te6t me)u $!r a t*eme.
/) t*e 'ial!5 b!6 $!r y!ur ser+ie a)' t*e selete' t*eme- e)ter t*e &r!5ram )ame a)' sree)
)umber- %*i* %ill ser+e as a basis $!r t*e tem&late.
Sa+e t*e tem&late.
>C? SAP AG BC400 8
13.10
SAP AG 2001
Publishing an 4nternet Ser"ice
7b6ect #a"igator 7b6ect #a"igator
DBC400C9WT
4nternet Ser"ice
DBC400C9WT
The%e //
!!!
Publish
Ser"ice $ile
Co%plete ser"ice
Publish
Co%plete ser"ice
SAP Syste%
ITS
9asy Web 9asy Web
Transaction Transaction
Ser"ice $ile
:T(2
B<S4#9SS
te%plate
SAP 2ibrary
@!u must sa+e t*e /)ter)et ser+ie i) a $ile t*e /0S a) aess. @!u a) &ublis* t*e ser+ie i) t*e
.eb A&&liati!) Buil'er i) t*e ObGet Na+i5at!rE
/) t*e ObGet Na+i5at!r- !&e) t*e !bGet list $!r t*e /)ter)et ser+ie.
/) t*e !)te6t me)u $!r t*e ser+ie- *!!se P$blish "omplete service)
-ote:
@!ur user:s&ei$i /0S setti)5s must be !rret be$!re y!u a) &ublis* a ser+ie. @!u a) *e( t*e
setti)5s i) t*e ObGet Na+i5at!r by *!!si)5 %tilities &ettin's IT& >tab i) t*e 'ial!5 b!6?.
>C? SAP AG BC400 #0
13.11
SAP AG 2001
&ttp:**#(tE"0.4+0sap1a(04e:<"V"*s$%#pts*.(ate*P,$!""/e.t*:
Testing the Web Transaction
7b6ect #a"igator 7b6ect #a"igator
DBC400C9WT
4nternet Ser"ice
DBC400C9WT
The%e //
!!!
Publish
Start ser"ice
Start ser"ice
Web bro&ser Web bro&ser
Web ser"er Path Ser"ice na%e
0! test a tra)sati!) a$ter &ublis*i)5 itE
C*!!se &tart service $r!m t*e !)te6t me)u >i) t*e /)ter)et ser+ie !bGet list?
1)ter http:&&Eser$erFG:EportFH&EpathF&#gate&Eser$ce>nameF& as t*e &at* i) a .eb br!%ser.
>C? SAP AG BC400 ##
13.12
SAP AG 2001
Create a transaction code $or an 9asy Web
Transaction
Create an 4nternet ser"ice
Publish an 4nternet ser"ice
Test an 9asy Web Transaction using a Web
bro&ser
Aou are no& able to:
7utlook: 8e"eloping 4nternet Applications
>C? SAP AG BC400 #"
+4
SAP AG 2001
Working &ith Function (odules
Working &ith (ethods
Working &ith BAP4s
Contents:
Cross=Progra% (odulari;ation
>C? SAP AG BC400 #
14.2
SAP AG 2001
Ac5uire in$or%ation on $unction %odules
4nclude $unction %odule calls in your progra%
4nclude ob6ect instances and %ethod calls in your
progra%
4nclude the A2? grid control $or displaying data in
a $i'ed screen area
Ac5uire in$or%ation on BAP4s
4nclude BAP4 calls in your progra%
At the conclusion o$ this unit0 you &ill be able to:
Cross=Progra% (odulari;ation: <nit 7b6ecti"es
>C? SAP AG BC400 "
14.3
SAP AG 2001
Working &ith Function (odules
Working &ith Function (odules
Working &ith Function (odules
Working &ith (ethods
Working &ith (ethods
Working &ith BAP4s
Working &ith BAP4s
>C? SAP AG BC400 3
14.4
SAP AG 2001
Function (odule
0n!er-ace 0n!er-ace
0*$or! 0*$or! $ara*e!ers $ara*e!ers
sy=subrc
A!!r"bu!es
/ocal a!a ob+ec!s
Source coe
0*$or! 0*$or! $ara*e!ers $ara*e!ers 42$or! 42$or! $ara*e!ers $ara*e!ers #han("n( $ara*e!ers #han("n( $ara*e!ers 42ce$!"ons 42ce$!"ons
Func!"on 'oule
*uncton modules are ati+ely i)te5rate' m!'ulariCati!) u)its %it* a) i)ter$ae.
9u)ti!) m!'ules a)- t*ere$!re- be alle' s&ei$ially $r!m %it*i) &r!5rams !r $u)ti!) m!'ules.
0*e i)ter$ae !$ a $u)ti!) m!'ule a) !)tai) t*e $!ll!%i)5 eleme)tsE
2mport parameters are &asse' t! t*e $u)ti!) m!'ule. /) 5e)eral- t*ese &arameters are assi5)e'
sta)'ar' ABAP Diti!)ary ty&es. /m&!rt &arameters a) als! be !&ti!)al.
("port parameters are reei+e' $r!m t*e $u)ti!) m!'ules. 16&!rt &arameters are al%ays
!&ti!)al.
Changng parameters are &asse' t! t*e $u)ti!) m!'ule a)' a) be *a)5e' by it.
("ceptons &r!+i'e i)$!rmati!) ab!ut err!r situati!)s. /$ a $u)ti!) m!'ule i)itiates a) e6e&ti!)-
&r!essi)5 !$ t*e $u)ti!) m!'ule is i)terru&te'. /t is &!ssible t! set a retur) !'e- i$ )eessary- i)
t*e alli)5 &r!5ram.
As is t*e ase %it* subr!uti)es- a $u)ti!) m!'ule a) !)tai) l!al ty&e a)' 'ata !bGet 'e$i)iti!)s.
>C? SAP AG BC400 4
14.5
SAP AG 2001
Function roup
Func!"on 'oule
F'4
0n!er-ace 0n!er-ace
Sub=
routine
4nter$ace 4nter$ace
Screen
lobal
data ob6ects
A functon group re&rese)ts t*e mai) &r!5ram $!r $u)ti!) m!'ules. Se+eral $u)ti!) m!'ules t*at
!&erate !) t*e same 'ata !)te)t are !mbi)e' t! $!rm a $u)ti!) 5r!u&.
0*e $u)ti!) 5r!u& remai)s ati+e $!r as l!)5 as t*e alli)5 &r!5ram is ati+e. 9!r e6am&le- i$ a)
e6eutable &r!5ram alls a $u)ti!) m!'ule- its e)tire $u)ti!) 5r!u& is l!a'e' as %ell. /t remai)s
ati+e u)til t*e e6eutable &r!5ram is !m&lete'.
A $u)ti!) 5r!u& a) !)tai) t*e same !m&!)e)ts as a) e6eutable &r!5ram. 0*ese i)lu'eE
3ata +b,ects
0*ese are t*e) 5l!bal i) relati!) t! t*e $u)ti!) 5r!u&- t*at is- t*ey are +isible t! a)' *a)5eable
by all $u)ti!) m!'ules %it*i) t*e 5r!u&. 0*e +ali'ity &eri!' is t*e same as $!r t*e $u)ti!) 5r!u&.
0ubroutnes
0*ese a) be alle' $r!m all $u)ti!) m!'ules i) t*e 5r!u&.
0creens
0*ese a) be alle' $r!m all $u)ti!) m!'ules i) t*e 5r!u&.
>C? SAP AG BC400 5
14.6
SAP AG 2001
8ata Flo& Within a Function roup
Func!"on 'oule
F'4
0n!er-ace 0n!er-ace
0*e 5l!bal 'ata !$ a $u)ti!) m!'ule is retai)e' u)til t*e &r!5ram t*at !)tai)e' t*e $irst all !$ a
$u)ti!) m!'ule i) t*e $u)ti!) 5r!u& is $i)is*e'.
0*us- i$ a $u)ti!) m!'ule t*at %rites +alues t! t*e 5l!bal 'ata is alle'- !t*er $u)ti!) m!'ules i)
t*e same $u)ti!) 5r!u& a) aess t*is 'ata %*e) t*e &r!5ram alls t*em.
See) $r!m t*e !utsi'e- t*e 5l!bal 'ata is e)a&sulate'- t*at is- it is )!t &!ssible t! aess it 'iretly.
0*ere$!re- y!u must *a+e $u)ti!) m!'ules t*at all!% !r'erly aess $r!m t*e !utsi'e.
0*e same a&&lies t! all t*e !t*er !m&!)e)ts !$ t*e $u)ti!) 5r!u& >sree)s- subr!uti)es?.
>C? SAP AG BC400 6
14.7
SAP AG 2001
9'a%ple: Trans%itting a Standard 8ialog
Syste% Syste% :elp :elp
SAP R:3
I
Ces
L#on!e2!9S$ec"-"c ,"!leM
NConte't=speci$ic additional te'tO
8ata &ill be lost
Cancel
?o
/) se+eral ABAP &r!5rams- a sta)'ar' 'ial!5 is tra)smitte' as s!!) as t*e user selets "ancel)
0*e &r!esse' sree) al%ays !)tai)s t*e se)te)eE D Data %ill be l!st.D 0*e title a)' t*e t%! li)es
$!ll!%i)5 it are !)te6t:s&ei$i. 0*e user a) *!!se !)e !$ t%! !&ti!)sE 9es !r (o)
>C? SAP AG BC400 A
14.8
SAP AG 2001
4ntegration o$ the Standard 8ialog
ABAP
progra%
Function
group
I
NAdditional te'tO
G
N !!! O
Addit! te't
Title
Ces ?o
-eply
Call
-eaction
L,"!leM
0*is 'ial!5 b!6 is e)a&sulate' i) a $u)ti!) m!'ule.
/$ y!u all t*is $u)ti!) m!'ule- t*e system a) &ass t*e a''iti!)al a)' title te6ts t! t*e $u)ti!)
m!'ule usi)5 t*e im&!rt &arameters.
0*e $u)ti!) m!'ule tra)smits a sree) !$ t*e $u)ti!) 5r!u& t*at 'is&lays t*e te6t li)es a)' t*e title-
a)' !)tai)s t*e 9es a)' (o butt!)s.
A) e6&!rt &arameter t*e) !)tai)s t*e i)$!rmati!) re5ar'i)5 %*i* butt!) t*e user *as *!se).
@!u a) i)te5rate t*is 'ial!5 i) y!ur &r!5ram as $!ll!%sE
Call t*e $u)ti!) m!'ule as s!!) as t*e user *as *!se) "ancel)
A$ter t*e all- e+aluate t*e a)s%er a)' reat a!r'i)5ly.
>C? SAP AG BC400 8
14.9
SAP AG 2001
Searching $or Function (odules
Searching &ithin a particular application co%ponent:
App%ication #ierarc#y
Searching &ith the help o$ a progra% that uses the $unction
%odule being searched $or:
Search in the ABAP 9ditor $or the CA22 F<#CT47# state%ent
Change to debugging %ode during progra% e'ecution and
set breakpoint in the CA22 F<#CT47# state%ent
4$ the $unction %odule trans%its a screen0 display the
progra% na%e and the screen nu%ber using F+ and technical
in$or%ation or na"igate directly ,double=click.
Duri)5 y!ur sear* $!r $u)ti!) m!'ules >a)' all !t*er Re&!sit!ry !bGets?- y!u %ill be su&&!rte' by
t*e ABAP .!r(be)* i) ma)y %ays.
/) t*e Re&!sit!ry /)$!rmati!) System- y!u a) use &arts !$ t*e te*)ial )ame- $!r e6am&le-
CON9/RM- !r &arts !$ t*e s*!rt te6t- $!r e6am&le- Confrmaton prompt9 'uri)5 y!ur sear*.
/$ y!u ()!% t*e a&&liati!) !m&!)e)t- y!u s*!ul' al%ays use t*e Application hierarchy) @!u use
t*is t! all t*e 'e+el!&me)t lasses i) Buesti!).
/$ y!u ()!% a &r!5ram t*at alrea'y uses t*e $u)ti!) m!'ule- y!u a) sear* i) t*is &r!5ram $!r t*e
all usi)5 t*e CALL F+NCTION stateme)t.
/) t*e ase !$ a m!'al 'ial!5 b!6- y!u '! )!t *a+e t*e sta)'ar' )a+i5ati!) met*!' >&ystem
&tat$s) at y!ur 'is&!sal t! be able t! $i)' sree) a)' &r!5ram )ames. /) su* ases- &!i)t t! a te6t
$iel' a)' selet ,4, Technical information)
/) all ases- be$!re y!u i)te5rate t*e $u)ti!) m!'ule i) y!ur &r!5ram- y!u must ma(e sure t*at it is
release!)
>C? SAP AG BC400 8
14.10
SAP AG 2001
9'ceptions Changing 9'port
Analysis o$ a Function (odule 4nter$ace
Function (odule P7P<PCT7CC7#F4-(C27SSC7FC8ATA
Attributes 4%port
Para%eters
,4E,/0?41
,4E,/0?42
,0,/4
S,AR,A#8/3'?
S,AR,AR8W
?alue 7ptional !!! -e$! type 8escription
Source
code

!!!
Re.u"re -unc!"on
*oule $ara*e!ers
%ust be $asse
ur"n( !he call
O)e y!u *a+e $!u)' a $u)ti!) m!'ule- y!u must $i)' !ut m!re ab!ut its i)ter$ae.
;)'er t*e Attrib$tes seti!) , y!u %ill $i)' !ut %*et*er t*e $u)ti!) m!'ule is release'.
0*e reBuire' &arameters i) t*e $u)ti!) m!'ule must be Osu&&lie' %it* 'ataP 'uri)5 t*e all. 0! $i)'
!ut %*i* a''iti!)al &arameters are t! be &asse' a)' %*e)- re$er t! t*e '!ume)tati!) !$ t*e
$u)ti!) m!'ule a)' t! t*e '!ume)tati!) !) i)ter$ae &arameters.
@!u a) als! )a+i5ate 'iretly t! t*e s!ure !'e !$ t*e $u)ti!) m!'ule.
>C? SAP AG BC400 #0
14.11
SAP AG 2001
8ocu%entation
H Short te't
H Function
H 9'a%ple
H #otes
H Additional in$or%ation
H Para%eters
H 9'ceptions
H Function group
Test 9n"iron%ent
4%port para%eters
9'port para%eters
9'ceptions
Function %odule
8ocu%entation and Testing
@!u a) test $u)ti!) m!'ules usi)5 t*e test e)+ir!)me)t. A) i)&ut tem&late all!%s y!u t! s&ei$y
t*e IMPORT a)' CHANGING &arameters. @!u a) als! s%it* t! 'ebu55i)5 m!'e. 0*e +alues i) t*e
EXPORT a)' CHANGING &arameters are liste' a$ter e6euti!).
/$ a) e6e&ti!) situati!) !urs- t*e system re!r's t*e e6e&ti!)- a)' als! 'is&lays a messa5e te6t-
i$ a+ailable.
0*e time reBuire' $!r e6euti)5 t*e $u)ti!) m!'ule is 'is&laye'. 0*ese +alues are subGet t! t*e
same limitati!)s as t*e .$ntime analysis $u)ti!). @!u s*!ul' t*ere$!re re&eat t*e test se+eral times
usi)5 t*e same 'ata.
@!u a) st!re test 'ata i) a test 'ata 'iret!ry.
@!u a) reate test seBue)es.
>C? SAP AG BC400 ##
14.12
SAP AG 2001
Calling a Function (odule
ABAP progra%
PA4
MODULE )se%/$omman4/"<"" INPUT0
CASE oM/$o4e0
3HEN 9CANCEL90
CALL FUNCTION
9POPUP/TO/CONFIRM/LOSS/OF/DATA9
EXPORTING
te?tl#ne 7 te?t1""<
t#tle 7 te?t1""D
IMPORTING
ans.e% 7 pop/ans.e%0
CASE pop/ans.e%0
.&en 9R90
000
.&en 9N90
000
ENDCASE0
000
ENDCASE0
te'tline
title
CALL FUNCTION CALL FUNCTION
EXPORTING EXPORTING
IMPORTING IMPORTING
ans&er
@!u all $u)ti!) m!'ules usi)5 t*e ABAP stateme)t CALL F+NCTION. 0*e )ame !$ t*e $u)ti!)
m!'ule $!ll!%s i) a&ital letters e)l!se' i) si)5le Bu!tati!) mar(s.
A$ter (8P+%T2-5 *as ta(e) &lae- t*e system &asses +alues t! t*e Impo# &arameters !$ t*e
$u)ti!) m!'ule.
A$ter 2)P+%T2-5 *as ta(e) &lae- t*e $u)ti!) m!'ule retur)s t*e result t*r!u5* its E1po#
&arameter.
3!!(i)5 at t*is $r!m t*e alli)5 &r!5ramIs si'e- %e see t*at t*e &arameters &asse' t! t*e $u)ti!)
m!'ule are e6&!rte'- a)' t*!se &asse' $r!m t*e $u)ti!) m!'ule t! t*e &r!5ram are im&!rte'.
O) t*e Parameter assi'nment sree)- t*e system 'is&lays t*e )ames !$ t*e i)ter$ae &arameters !$
t*e $u)ti!) m!'ule >$!rmal &arameters? t! t*e le$t !$ t*e eBual si5). 0*e system 'is&lays t*e alli)5
&r!5ramIs 'ata !bGets >atual &arameters? t! t*e ri5*t !$ t*e eBual si5).
>C? SAP AG BC400 #"
14.13
SAP AG 2001
4%ple%entation o$ a Function (odule Call
Syste% Syste% :elp :elp
SP7+
ABAP E/itor( C#an*in* t#e Report 00012B
Function %odules
P7P<PCT7CC7#F4-(C
CALL FUNCTION
9POPUP/TO/CONFIRM/LOSS/OF/DATA9
EXPORTING
te?tl#ne 7 000
t#tle 7 000
IMPORTING
ans.e% 7 000
Fill in actual
para%eters
B
or:
Sdrag=and=dropS


CALL F*"CTI)"
4nsert pattern
0)0*0#T)#C)"FI%!#L)SS#)F#DATA
Pattern
0! &r!5ram t*e $u)ti!) m!'ule all- al%ays use t*e Pattern $u)ti!).
Alter)ati+ely- y!u a) 'is&lay t*e $u)ti!) 5r!u& i) t*e )a+i5ati!) area a)' t*e) &ull t*e $u)ti!)
m!'ule all i)t! t*e ABAP 1'it!r area usi)5 'ra5:a)':'r!&.
0*e ABAP stateme)t CALL FUNCTION 9F+NCTION_MOD+LE_NAMEB is t*us i)serte'- t!5et*er
%it* t*e e)tire list !$ i)ter$ae &arameters a)' e6e&ti!)s- at t*e urre)t urs!r &!siti!) i) t*e s!ure
!'e !$ t*e &r!5ram. O&ti!)al &arameters a)' e6e&ti!)s are i)serte' as !mme)ts. /) t*is %ay- y!u
a+!i' ty&i)5 err!rs a)' !missi!)s.
A$ter &r!5rammi)5 t*e $u)ti!) m!'ule all- y!u must $ill i) t*e urre)t atual &arameters a)'- i$
)eessary- &r!5ram t*e e6e&ti!) *a)'li)5.
>C? SAP AG BC400 #3
14.14
SAP AG 2001
:andling o$ 9'ceptions
CALL FUNCTION 9C!""/UPDATE/FLTIME9
EXPORTING
#v/$a%%#4 7 .a/sp+l#1$a%%#4
#v/$onn#4 7 .a/sp+l#1$onn#4
#v/+lt#me 7 .a/sp+l#1+lt#me
#v/4ept#me 7 .a/sp+l#14ept#me
EXCEPTIONS
+l#(&t/not/+o)n4 7 <
000 7 000
OTHERS 7 !0
CASE s'1s),%$0
3HEN "0
MESSAGE s<!VA,$!""C0
3HEN <0
MESSAGE #""EA,$!""C0
3HEN 000
000
3HEN !0
MESSAGE #<!XA,$!""C0
ENDCASE0
i"Ccarrid
i"Cconnid
i"C$lti%e
i"Cdepti%e
EXCEPTIONS EXCEPTIONS
8atabase
table
s' s'1 1s),%$ s),%$
.it* m!st $u)ti!) m!'ules- e6e&ti!)s are tri55ere' i) err!r situati!)s. /) su* ases- t*e
e6e&ti!)s are assi5)e' t! t*e )umber +alues a$ter 12C1P0/ONS.
/$ t*e $u)ti!) m!'ule tri55ere' su* a) e6e&ti!)- t*e res&eti+e +alue is &lae' i)t! t*e system
$iel' ,$/,-)..
/$ y!u '! )!t %a)t t! list t*e tri55ere' e6e&ti!) u)'er 12C1P0/ONS !r y!u a))!t '! s!- t*e
e6e&ti!) is assi5)e' t! t*e O0<1RS ase- &r!+i'e' t*is a''iti!) is liste'.
By e+aluati)5 t*is $iel'- y!u a) t*e) reat a!r'i)5ly. /) t*e e6am&le s*!%) i) t*e 5ra&*i-
suitable messa5es are tra)smitte'.
/$ )! e6e&ti!) %as tri55ere' !r )eit*er t*e e6e&ti!) )!r O0<1RS %as liste' u)'er 12C1P0/ONS9
t*e system sets t*e ,$/,-). $iel' t! 0.
>C? SAP AG BC400 #4
14.15
SAP AG 2001
Working &ith (ethods
Working &ith Function (odules
Working &ith Function (odules
Working &ith (ethods
Working &ith (ethods
Working &ith BAP4s
Working &ith BAP4s
>C? SAP AG BC400 #5
14.16
SAP AG 2001
Classes and 7b6ects
H attr+
H attr2
H !!!
H %eth+
H %eth2
H !!!
#a%e
Attributes ,data ob6ects.:
(ethods ,$unctions.:
Class:
technical
description
o$ ob6ects
attr+
attr2
%eth+
41++
!!!
%eth2
attr+
attr2
%eth+
+23
!!!
%eth2
attr+
attr2
%eth+
H
!!!
%eth2
7b6ects:
-unti%e instances
in a class
At $irst 5la)e- a lass is +ery mu* li(e a $u)ti!) 5r!u& si)e it !)tai)s 'ata !bGets >attributes?
a)' $u)ti!)s >met*!'s?. 0*ese !m&!)e)ts a) be &r!tete' $r!m aess by !m&!)e)ts !$ !t*er
&r!5rams. 0*e) t*ey a) be aesse' !)ly by met*!'s bel!)5i)5 t! t*e lass.
/) !)trast t! $u)ti!) 5r!u&s- lasses a) *a+e multi&le i)sta)es- t*at is- m!re t*a) !)e ru)time
!bGet a) be reate' $!r ea* &r!5ram i) a lass. /) !t*er %!r's- a lass !)tai)s t*e te*)ial
'esri&ti!) !$ !bGets >i)sta)es?. All t*ese !bGets- t*ere$!re- *a+e t*e same attributes a)' &r!+i'e
t*e same met*!'s. <!%e+er- t*ey a) be 'isti)5uis*e' &*ysially. 0*eir attributes a) *a+e 'i$$ere)t
$eatures.
Classes a) be 'e$i)e' eit*er l!ally %it*i) a) e6eutable &r!5ram !r 5l!bally i) t*e Class Buil'er.
0*e ABAP ru)time system &r!+i'es su&&!rt $!r sta)'ar' !bGet:!rie)te' sy)ta6 eleme)ts as !$
Release 4.6A. 9!r m!re 'etails- re$er t! t*e SAP !)li)e library.
>C? SAP AG BC400 #6
14.17
SAP AG 2001
ABAP progra%
Creating 7b6ects and Calling (ethods
DATA %e+< TYPE REF TO $lass0
DATA %e+D TYPE REF TO $lass0
CREATE ORECT %e+< 000
CREATE ORECT %e+D 000
CALL METHOD %e+<1Lmet&<
EXPORTING 000
IMPORTING 000
EXCEPTIONS 000
CALL METHOD %e+D1Lmet&<
EXPORTING 000
IMPORTING 000
EXCEPTIONS 000
000
re$+ re$2
%eth+
%eth+
0! reate i)sta)es !$ lasses a)' t! be able t! aess t*em- y!u )ee' re$ere)e +ariables- %*i* are
&!i)ters t! t*ese i)sta)es. @!u 'e$i)e t*ese re$ere)e +ariables usi)5 DATA e!een.e_name
TYPE REF TO .&a,,_name.
At &r!5ram start- t*e 'ata !bGets are reate' i) mem!ry. <!%e+er- si)e )! i)sta)es *a+e bee)
reate' yet- t*e re$ere)e +ariables are still em&ty.
At ru)time- y!u a) reate as ma)y i)sta)es !$ lasses as y!u %is* usi)5
C%(AT( +BJ(CT e!een.e_name%
/$ )eessary- t*e im&!rt &arameters !$ t*e s&eial met*!' CONS0R;C0OR must be $ille' %it*
+alues. 0*is s&eial met*!' is e6eute' imme'iately a$ter t*e i)sta)e is reate'. As a rule- basi
setti)5s $!r t*e atual i)sta)e are t*us reate'.
@!u a) all met*!'s !$ a) i)sta)e usi)5
CA44 )(T6+3 e!een.e_name1Lme#(od_name.
/) !)trast t! a $u)ti!) m!'ule all- t*e met*!' )ame is )!t su$$iie)t *ere beause- 5e)erally-
se+eral i)sta)es !$ a lass e6ist $!r ea* &r!5ram. ;si)5 t*e re$ere)e +ariable- $!ll!%e' by t*e
!bGet !m&!)e)t selet!r -F- y!u i)strut a partcular i)sta)e t! e6eute its met*!'.
>C? SAP AG BC400 #A
14.18
SAP AG 2001
9'a%ples o$ Standard Classes: 9n6oySAP Controls
AA
00+1
00*4
2:
0400
0402
Airlines
http:>>&&&!sap!co%
Picture Control
Tree Control :T(2 ?ie&er Control
As !$ Release 4.6A- t*e ABAP .!r(be)* !$$ers se+eral )e% 1)G!ySAP !)tr!ls i) !r'er t! m!+e
'ial!5 $u)ti!)s $r!m t*e a&&liati!) ser+er t! t*e &rese)tati!) ser+er. 0*ese !)tr!ls are alle' !)
a) !bGet:!rie)te' basis usi)5 lasses- t*at is- t*e 0AP Control *rame#ork.
9!r ea* met*!' all- y!u selet t*e !)tr!ls $r!m y!ur ABAP &r!5ram. 0*e C!)tr!l 9rame%!r(
se)'s y!ur reBuests t! t*e &rese)tati!) ser+er %*ere t*ey are !)+erte' !) a &lat$!rm:s&ei$i basis.
@!u a) 5i+e t*e user t*e !&ti!) !$ tri55eri)5 e+e)ts !) t*e &rese)tati!) ser+er. 0*e C!)tr!l
9rame%!r( t*e) !)+erts t*ese e+e)ts a)' y!u a) reat t! t*em i) y!ur ABAP &r!5ram.
9!r m!re 'etails !) t*e 1)G!ySAP !)tr!ls a)' t*e C!)tr!l 9rame%!r(- re$er t! t*e SAP !)li)e
library.
>C? SAP AG BC400 #8
14.19
SAP AG 2001
9'a%ple o$ <sage: A2? rid Control
+1
*4
AA
AA
AA
AA
2:
2:
2:
2:
2:
+1
+1
400
402
400
400
402
2000=0+=+1
2000=02=20
2000=03=++
2000=0)=+/
2000=0+=+3
2000=02=2*
2000=03=2+
2000=03=04
2000=0)=2H
<S8
<S8
<S8
<S8
89(
89(
89(
89(
89(
)+3!*/
+234!)*
+234!)*
)+3!*/
)+3!*/
3*/!00
+234!)*
+234!)*
+234!)*
A32+
141=400
A3+0=300
A3+/
A3+/
A3+0=300
A3+0=300
A32+
141=400
8etails
Sort
Find
Filter
Su%
Print
8o&nload
8isplay "ariant
Toolbar
0*e A37 5ri' !)tr!l is use' $!r 'is&layi)5 )!):*ierar*ial 'ata i) table $!rm. Se+eral user
$u)ti!)s are alrea'y im&leme)te'.
/) t*e !)tr!l- y!u a) a'Gust t*e !lum) %i't* by 'ra55i)5- !r use t*e Optim$m wi!th $u)ti!) t!
a'Gust t*e !lum) %i't* t! t*e 'ata urre)tly 'is&laye'. @!u a) als! *a)5e t*e !lum) seBue)e by
seleti)5 a !lum) a)' 'ra55i)5 it t! a )e% &!siti!).
Sta)'ar' $u)ti!)s are a+ailable i) t*e !)tr!l t!!lbar. 0*e Details &us*butt!) 'is&lays t*e $iel's i)
t*e li)e !) %*i* t*e urs!r is &!siti!)e' i) a m!'al 'ial!5 b!6.
,he Sort -unc!"on "n !he A/D con!rol "s a)a"lable -or as *an& colu*ns as re.u"re. @!u a)
set !m&le6 s!rt riteria a)' s!rt !lum)s i) eit*er ase)'i)5 !r 'ese)'i)5 !r'er.
@!u a) use t*e &earch $u)ti!) t! sear* $!r a stri)5 >5e)eri sear* %it*!ut J? i) li)es !r !lum)s
%it*i) a selete' area.
@!u a) use t*e &$m $u)ti!) t! reBuest t!tals $!r !)e !r m!re )umeri !lum)s. @!u a) use t*e
&$btotal $u)ti!) t! struture !)tr!l le+el listsE selet t*e !lum)s >)!):)umeri $iel's !)ly? t*at
y!u %a)t t! use a)' t*e !rres&!)'i)5 !)tr!l le+el t!tals are 'is&laye'.
9!r Print a)' Downloa! t*e %*!le list is al%ays &r!esse'- )!t Gust t*e seti!)s 'is&laye' !) t*e
sree).
@!u a) als! 'is&lay +aria)ts.
>C? SAP AG BC400 #8
14.20
SAP AG 2001
Progra%s <sing A2? rid Control
Area
Custo%
Container
Control
A2? rid Control
Screen +00
Process
Be$ore
7utput
Process
A$ter
4nput
START1OF1
SELECTION0


A) 1)G!y SAP !)tr!l must al%ays be embe''e' i) a) SAP !)tai)er !)tr!l. 0*is ma)a5es t*e
embe''e' !)tr!ls a)' &r!+i'es a &*ysial area $!r +isualiCati!).
A !)tai)er be!mes t*e parent !$ t*e embe''e' !)tr!l.
Beause !)tai)ers are t*emsel+es !)tr!ls- t*ey a) be )este' %it*i) !)e a)!t*er. /) t*is %ay- y!u
a) %!r( $le6ibly a)' m!'ularly %it* !)tr!ls.
0! be able t! use a) A37 5ri' !)tr!l i) y!ur &r!5ram- y!u reBuire at least !)e !)tai)er a)' !)e
A37 5ri' i)sta)e.
>C? SAP AG BC400 "0
14.21
SAP AG 2001
7b6ects and Classes $or A2? rid Control
Area
Custo%
Container
Control
A2? rid Control


Custo%
Container
A2? rid
Class Builder
C2C<4CA2?C-48
C2C<4CC<ST7(CC7#TA4#9-
@!u a) use t*e $!ll!%i)5 5l!bal lasses >!bGet ty&es? i) t*e "lass B$il!er t! all t*e ust!m
!)tai)er !)tr!ls a)' t*e A37 Gri' C!)tr!l/
C4>512>C10T+)>C+-TA2-(%
C4>512>A4@>5%23
>C? SAP AG BC400 "#
14.22
SAP AG 2001
9"ents
Custo% Control Container: Constructor (ethod
Superclasses
(ethods
C7#ST-<CT7-
C2C<4CC<ST7(CC7#TA4#9-
Class C2C<4CC<ST7(CC7#TA4#9-
Attributes 4nter$aces Attributes (ethods
Para%eters $or %ethod C7#ST-<CT7-
Para%eters
PAR4?,
#8?,A0?4RA?A'4
!!!
?alue 7ptional !!! -e$! type !!! 8escription

4nt! Types

-e5uired
para%eters o$ the
Constructor %ethod
%ust be
passed at
C-9AT9 7BI9CT
9!r m!re 'etaile' i)$!rmati!) !) t*e 5l!bal lass C3UG;/UC;S0OMUCON0A/N1R- y!u a)
)a+i5ate i) t*e Class Buil'er. Dis&lay t*e !bGet list $!r t*e lass i) t*e )a+i5ati!) area !$ t*e ObGet
Na+i5at!r) 0*e) 'is&lay t*e e)tire lass !r i)'i+i'ual !m&!)e)ts i) t*e ABAP 1'it!r. Alter)ati+ely-
y!u a) als! 5! t! t*e Class Buil'er by '!uble:li(i)5 t*e lass )ames $r!m %it*i) a) ABAP
&r!5ram. De&e)'i)5 !) t*e 'is&lay m!'e- y!u a) t*e) 'is&lay t*e i)ter$ae &arameters t*r!u5*
Parameters !r &i'nat$re)
0*e 5l!bal lass C3UG;/UC;S0OMUCON0A/N1R !)tai)s t*e CONS0R;C0OR met*!'. .*e)
y!u reate a) i)sta)e i) a &r!5ram usi)5 CR1A01 OB=1C0- y!u must &ass at least t*e reBuire'
&arameter CON0A/N1RUNAM1. 0*e )ame !$ a ust!m !)tai)er area !) a sree) must be &asse'
t! t*is &arameter.
>C? SAP AG BC400 ""
14.23
SAP AG 2001
A2? rid Control: 4%portant (ethods
Superclasses
4nter$aces
Attributes
(ethods
!!!
C7#ST-<CT7-
!!!
-9F-9S:CTAB29C84SP2AA
!!!
S9TCTAB29CF7-CF4-STC84SP2AA
!!!
-ede$initions
9"ents
C2C<4CA2?C-48
-e5uired para%eter:
#/pa%ent
,-e$erence to C2C<4CC7#TA4#9-.
7ptional para%eter:
#/st%)$t)%e/name
,global line type o$
internal table.
-e5uired para%eter:
#t/o)tta,
,internal standard table
&ith data $or display.
0*e 5l!bal lass C3UG;/UA37UGR/D !)tai)s se+eral met*!'s. 0! 'is&lay t*e !)te)ts !$ a)
i)ter)al table %it* a) A37 5ri' !)tr!l- all y!u )ee' t! '! is t! use t*e $!ll!%i)5 t*ree met*!'sE
C+-0T%1CT+%E
0*e &!i)ter t! t*e !)tai)er !)tr!l i)sta)e must be &asse' t! t*e !)strut!r.
0(T>TAB4(>*+%>*2%0T>320P4A7E
0*e i)ter)al table %it* t*e 'ata t! be 'is&laye' must be &asse' t! t*e &arameter "#_o-##a). 0*is
must be a sta)'ar' i)ter)al table s! t*e user a) use t*e s!rt $u)ti!)s. 9urt*erm!re- te*)ial
i)$!rmati!) is reBuire' $!r e'iti)5 t*e 5ri' !lum)s. 0*e easiest a&&r!a* is t! use a $lat struture !r
a tra)s&are)t table 'e$i)iti!)- t*at is- a 5l!bal ty&e- as t*e li)e ty&e $!r t*e i)ter)al table. /) t*is ase-
y!u still )ee' t! &ass !)ly t*e )ame !$ t*is li)e ty&e t! t*e "_,#-.#-e_name &arameter.
Alter)ati+ely- y!u a) als! set u& a $iel' atal!5 a)' &ass it t! "#_!"e&d.a#a&o'.
%(*%(06>TAB4(>320P4A7E
@!u )ee' t! all t*is met*!' !)ly i$ y!u *a+e *a)5e' t*e !)te)ts !$ t*e i)ter)al table a$ter t*e $irst
'is&lay.
>C? SAP AG BC400 "3
14.24
SAP AG 2001
Creating a Screen 9le%ent SCusto% Control AreaS
Custo%
Control
Area
Type: Custo% Control
#a%e: C7#TA4#9-C+
-esi;ing
?ertical: 9 (ini%u% lines: )
:ori;ontal: 9 (ini%u% colu%ns: 20
C
Custo% Control
Screen Painter
0! reser+e a) area !$ t*e sree) $!r a) 1)G!ySAP !)tr!l- reate a ust!m !)tai)er area usi)5 t*e
Sree) Pai)ter >use t*e +ayo$t butt!)?.
/) t*e t!!lbar t! t*e le$t !$ t*e e'iti)5 area- y!u %ill see a) i!) %it* t*e )ame "$stom control.
C*!!se t*e "$stom control butt!). 0*e) 'e$i)e t*e siCe a)' t*e &!siti!) !$ t*e area i) t*e sree).
0! '! t*is- 'e$i)e t*e t!& le$t !r)er !$ t*e area by *!l'i)5 '!%) t*e m!use butt!). Dra5 t*e
urs!r '!%) 'ia5!)ally t! t*e ri5*t t! %*ere y!u %a)t t*e l!%er ri5*t !r)er. O)e y!u release t*e
m!use butt!)- t*e l!%er ri5*t !r)er is $i6e' i) &!siti!).
@!u a) *a)5e t*e siCe a)' &!siti!) !$ t*e area at a)y time by 'ra55i)5 a)' 'r!&&i)5 t*e 'ra5
symb!ls.
1)ter a )ame $!r t*e sree) eleme)t >*ereE CON0A/N1RU#?.
;se t*e .esi:in' vertical a)' .esi:in' hori:ontal attributes t! s&ei$y %*et*er !r )!t t*e area !$ t*e
ust!m !)tr!l s*!ul' be resiCe' %*e) t*e mai) sree) is resiCe'. @!u a) als! set mi)imum +alues
$!r t*ese attributes usi)5 7in) row a)' 7in) col$mns. 0*e u&&er limit is 'e$i)e' by t*e siCe !$ t*e
area.
>C? SAP AG BC400 "4
14.25
SAP AG 2001
8e$ining -e$erence ?ariables
DATA (4t/sp+l# TYPE s,$!""/t/sp+l#0
DATA: $onta#ne%/% TYPE REF TO $l/()#/$)stom/$onta#ne% 6
(%#4/% TYPE REF TO $l/()#/alv/(%#4 0

DATA oM/$o4e TYPE s'1)$omm0
START1OF1SELECTION0
2 +#ll #nte%nal ta,le 000
CALL SCREEN <""0
$onta#ne% $onta#ne%/% TYPE REF TO /% TYPE REF TO $l $l/ /()# ()#/ /$)stom $)stom/ /$onta#ne% $onta#ne%
containerCr
gdtCsp$li
okCcode
(%#4 (%#4/% TYPE REF TO /% TYPE REF TO $l $l/ /()# ()#/ /alv alv/ /(%#4 (%#4
gridCr
0%! re$ere)e +ariables are reBuire' i) t*e ABAP &r!5ram.
0*e re$ere)e +ariable t*at is t! &!i)t t! t*e !)tai)er !)tr!l i)sta)e is alle' $onta#ne%/% i)
t*e e6am&le i) t*e 5ra&*i- a)' *as t*e 5l!bal lass ty&e .&_'-"_.-,#om_.on#a"ne.
0*e re$ere)e +ariable t*at is t! &!i)t t! t*e 5ri' !)tr!l i)sta)e is alle' '"d_ i) t*e e6am&le i)
t*e 5ra&*i a)' *as t*e 5l!bal lass ty&e .&_'-"_a&4_'"d.
>C? SAP AG BC400 "5
14.26
SAP AG 2001
MODULE $%eate/$ont%ol OUTPUT0
IF $onta#ne%/% IS INITIAL0
CREATE ORECT $onta#ne%/%
EXPORTING $onta#ne%/name 7 9CONTAINER/<90

CREATE ORECT (%#4/%
EXPORTING #/pa%ent 7 $onta#ne%/%0
000
ENDIF0
ENDMODULE0
Creating 4nstances
CREATE ORECT CREATE ORECT $onta#ne% $onta#ne%/% /%
EXPORTING EXPORTING $onta#ne% $onta#ne%/ /name name 7 9CONTAINER/<9 7 9CONTAINER/<9
CREATE ORECT CREATE ORECT (%#4 (%#4/% /%
EXPORTING #/ EXPORTING #/pa%ent pa%ent 7 7 $onta#ne% $onta#ne%/% /%
containerCr
gridCr
@!u reate !)tr!l i)sta)es usi)5 t*e CREATE OBEECT stateme)t.
Ma(e sure y!u let t*e system 5e)erate t*e stateme)t by usi)5 t*e Pattern. /) t*is %ay- y!u a+!i'
ty&i)5 err!rs a)' mista(es. As is t*e ase %it* $u)ti!) m!'ule alls- t*e !m&lete i)ter$ae is
im&leme)te' i) y!ur &r!5ram. CREATE OBEECT is a) i)ter$ae !$ t*e !)strut!r met*!'.
O&ti!)al &arameters are e)tere' as !mme)ts.
0*e !)tr!l &r!essi)5 must be !m&lete before t*e res&eti+e sree) is 'is&laye'. Als!- it s*!ul' be
li)(e' m!'ularly t! t*e &r!essi)5 !$ t*e res&eti+e sree). 9!r t*is reas!)- %e re!mme)' t*at y!u
im&leme)t a PBO m!'ule *ere.
Creati)5 a) i)sta)e $!r t*e !)tr!ls s*!ul' ta(e &lae !)ly !)e- be$!re t*e frst sree) 'is&lay.
4ueryi)5 t*e !)te)t !$ !)e !$ t*e t%! re$ere)e +ariables easily '!es t*is.
Creati)5 i)sta)es $!r t*e !)tai)er !)tr!l is im&leme)te' i) t*e !rres&!)'i)5 PBO m!'ule.
0*ere$!re- it is su$$iie)t i$ y!u e)ter t*e )ame !$ t*e ust!m !)tai)er area. /) !t*er ases- y!u a)
e)ter t*e &r!5ram )ame a)' t*e sree) )umber als!.
.*e) y!u set a) i)sta)e $!r t*e 5ri' !)tr!l- it is su$$iie)t i$ y!u &ass t*e &!i)ter t! t*e !)tai)er
i)sta)e. /) t*is %ay- t*e !)tai)er !)tr!l mai)tai)s t*e te*)ial li)( !$ t*e 5ri' !)tr!l t! t*e
sree).
>C? SAP AG BC400 "6
14.27
SAP AG 2001
Calling (ethods
MODULE $%eate/$ont%ol OUTPUT0
IF $onta#ne%/% IS INITIAL0
000
CALL METHOD
(%#4/%1Lset/ta,le/+o%/+#%st/4#spla'
EXPORTING #/st%)$t)%e/name 7 9SPFLI9
CHANGING #t/o)tta, 7 (4t/sp+l# 0
000
ENDIF0
ENDMODULE0
CALL METHOD CALL METHOD
(%#4 (%#4/%1L /%1Lset set/ /ta,le ta,le/ /+o% +o%/ /+#%st +#%st/ /4#spla' 4#spla'
EXPORTING #/ EXPORTING #/st%)$t)%e st%)$t)%e/ /name name 7 9SPFLI9 7 9SPFLI9
CHANGING CHANGING #t #t/ /o)tta, o)tta, 7 7 (4t (4t/ /sp+l# sp+l#
containerCr
gridCr
0! tra)smit t*e !)te)ts !$ t*e i)ter)al table a)' t*e li)e ty&e t! t*e 5ri' !)tr!l- y!u must all t*e
,e#_#a)&e_!o_!",#_d",p&a$ met*!'.
@!u &ass t*e )ame !$ t*e i)ter)al table t! t*e "#_o-##a) &arameter.
<ere t*e i)ter)al table *as bee) ty&e' %it* t*e tra)s&are)t table SPFLI as li)e ty&e. 0*ere$!re- it is
su$$iie)t t! &ass t*is )ame t! t*e "/,#-.#-e_name &arameter. /) a''iti!)- basi setti)5s !$
t*e 5ri' !)tr!l a) be &asse' as %ell.
/$ t*e !)te)ts !$ t*e i)ter)al table *a)5e 'uri)5 t*e &r!5ram- y!u must all t*e
e!e,(_#a)&e_d",p&a$ met*!' be$!re t*e )e6t sree) is 'is&laye'.
>C? SAP AG BC400 "A
14.28
SAP AG 2001
Working &ith BAP4s
Working &ith Function (odules
Working &ith Function (odules
Working &ith (ethods
Working &ith (ethods
Working &ith BAP4s
Working &ith BAP4s
>C? SAP AG BC400 "8
14.29
SAP AG 2001
Business Application Progra%%ing 4nter$ace
BAP4
A BAP4 is a &ell=de$ined inter$ace to processes and
data o$ a business application syste%0 i%ple%ented
as a business ob6ect %ethod in the
Business 7b6ect -epository ,B7-.!
A BAP/ a) be +ie%e' as t*e '!!r t! t*e SAP systemH t*is i)ter$ae &r!+i'es aess t! busi)ess 'ata
a)' &r!esses i) t*e SAP system $r!m t*e !utsi'e.
1a* !bGet i) t*e BOR a) *a+e se+eral met*!'s- !)e !r m!re !$ %*i* a) be im&leme)te' as
BAP/s.
BAP/s usually e6ist $!r basi $u)ti!)s !$ a busi)ess !bGet- su* asE
Creati)5 !bGets
4ueryi)5 t*e attributes !$ a) !bGet
C*a)5i)5 t*e attributes !$ a) !bGet
>C? SAP AG BC400 "8
14.30
SAP AG 2001
Business
Work$lo&
8istributed scenarios ,A29.
4nternet >
4ntranet
Custo%erLs and partnerKs
o&n code
IA?A0 C0 !!!
->3 Co%ponent
Creation
B
Business
Co%ponent
Business
Co%ponent
Business
Co%ponent
BAP4 <sage
A BAP/ a) be use' $!r +ari!us a&&liati!)s. 9!r e6am&leE
Q /)ter)et a&&liati!) !m&!)e)tsE De&iti!) !$ i)'i+i'ual SAP R/3 $u)ti!)s i) t*e /)ter)et !r
i)tra)et : $!r e6am&le- $!r users %*! '! )!t *a+e SAP R/3 e6&erie)e.
Q R/3 !m&!)e)t reati!)E C!mmu)iati!) bet%ee) t*e busi)ess !bGets !$ 'i$$ere)t SAP R/3
!m&!)e)ts >s!luti!)s?.
Q Cust!mersF !r &art)ersF !'eE 16ter)al lie)ts >$!r e6am&le- alter)ati+e G;/s? 'iretly aess
busi)ess 'ata a)' &r!esses !$ t*e SAP R/3 System. /) &artiular- BAP/ alls >as alls !$ RPC:
e)able' $u)ti!) m!'ules als!? a) be im&leme)te' i) !t*er &r!5rammi)5 la)5ua5es.
>C? SAP AG BC400 30
14.31
SAP AG 2001
Standardi;ed BAP4s
et2ist
Supplies a list o$ ob6ect key $ields that satis$y selected
criteria ,search $unction.
et8etail
Supplies detailed in$or%ation ,attributes. on an ob6ect
,the $ull key %ust be speci$ied.
Create0 Change0 8elete0 Cancel
Creating0 changing0 and deleting ob6ects
Add4te%0 -e%o"e4te%
Creating and re%o"ing subob6ects ,$or e'a%ple0
ite% in an order.
0*ere are sta)'ar' met*!'s $!r BAP/s %it* sta)'ar'iCe' )ames.
S!me !$ t*e m!st im&!rta)t sta)'ar' met*!' )ames are liste' *ere.
>C? SAP AG BC400 3#
14.32
SAP AG 2001
Finding BAP4 Function (odules
:ierarchy Alphabetical 8etail 8ocu%entation Tools Pro6ect
FlightBooking
FlightCusto%er
FlightConnection
-eturn
Flight8ata
et2ist
(ethod ,BAP4.
API/SFLIGHT/GETDETAIL
AirlineCarrier
Connection#u%ber
8ate7$Flight
et8etail
(ethod
Business ob6ect
Short te't
#e& as o$ release
Function %odule
!"C
Fl#(&t 4eta#ls
Fl#(&tooM#n(
GetDeta#l
8ouble=click:
#a"igation in
Function Builder
/) Release 4.6C- BAP/s are im&leme)te' usi)5 $u)ti!) m!'ules.
9r!m t*e SAP 1asy Aess me)u- y!u all t*e BAP/ 16&l!rer by *!!si)5 Tools B$siness
,ramework BAPI Browser.
;si)5 t*e BAP/ 16&l!rer- y!u a) )a+i5ate t! t*e $u)ti!) m!'ule 'is&lay $!r t*e selete' BAP/ i)
t*e 9u)ti!) Buil'er.
Selet t*e BAP/ i) t*e *ierar*y seti!).
/) t*e 'etaile' 'is&lay %i)'!%- *!!se t*e Detail tab.
By '!uble:li(i)5 !) t*e )ame !$ t*e $u)ti!) m!'ule- y!u a) 'is&lay it i) t*e 9u)ti!) Buil'er.
>C? SAP AG BC400 3"
14.33
SAP AG 2001
Characteristics o$ a BAP4 Function (odule
SAP Syste%
0n!er-ace 0n!er-ace
Function group
Source code
Structure o$
BAP4Cna%e
4nter$ace para%eters typed
&ith a 8ictionary structure
that is co%piled $or the BAP4
#o user
dialogs
#o C:A#4#
para%eters
#o
e'ceptions
9rror %essages
through 9VP7-T
para%eter RETURN
,structure or
internal table.
-e%ote
capability
9u)ti!) m!'ules $!r BAP/s must $ul$ill t*e $!ll!%i)5 reBuireme)tsE
Nami)5 !)+e)ti!) API/K,)s#ness/o,-e$t/nameL/Kmet&o4/nameL must be use'
Rem!te a&ability
N! user 'ial!5s- )eit*er sree)s )!r messa5es- all!%e'
/)ter$ae &arameters must be ty&e' %it* a Diti!)ary struture t*at %as reate' $!r t*is BAP/
Strutures must !m&ly %it* t*e )ami)5 !)+e)ti!) API/Kst%)$t)%e/nameL a)' are
*a)5e' !)ly !) a !m&atible basis
N! CHANGING &arameters all!%e'
N! e6e&ti!)s all!%e'. 1rr!rs are re&!rte' t! t*e user t*r!u5* t*e s&eial e6&!rt &arameter
RET+RN%
>C? SAP AG BC400 33
14.34
SAP AG 2001
Calling a BAP4 Function (odule $ro% an ABAP
Progra%
ABAP progra%
CALL FUNCTION 9API/0009 CALL FUNCTION 9API/0009
EXPORTING EXPORTING
000 000
IMPORTING IMPORTING
000 000
%et)%n %et)%n 7 000 7 000
For currency and 5uantity $ields:
Possible con"ersion to
Se'ternal $or%atS
B7-
For currency and 5uantity $ields:
Possible con"ersion to
Se'ternal $or%atS
BAC?
/$ y!u %!ul' li(e t! use a BAP/ i) t*e SAP R/3 System- y!u a) all t*e $u)ti!) m!'ule !)tai)i)5
it.
Pay atte)ti!) t! t*e limitati!)s alrea'y me)ti!)e'.
BAP/ i)ter$aes are reate' a!r'i)5 t! t*e )ee's $!r t*e De6ter)alD all- t*at is- $r!m a )!):R/3
System. 4ua)tities are e6&ete' i) a) e6ter)al $!rmat %it* 4 !r 8 'eimal &laes. 0*e Bua)tities must
be tra)s$erre' t! t*e i)ter$ae i) !)+erte' $!rmat- e+e) i$ t*e !rres&!)'i)5 urre)y *as )!
'eimal &laes.
9!r t*is !)+ersi!) y!u a) use $u)ti!) m!'ules $r!m t*e BAC@ $u)ti!) 5r!u& >'e+el!&me)t
lass 0B*>BAP2?.
>C? SAP AG BC400 34
14.35
SAP AG 2001
Ac5uire in$or%ation on $unction %odules
4nclude $unction %odule calls in your progra%
4nclude ob6ect instances and %ethod calls in your
progra%
4nclude the A2? rid Control $or displaying data
in a $i'ed screen area
Ac5uire in$or%ation on BAP4s
4nclude BAP4 calls in your progra%
Aou are no& able to:
Cross=Progra% (odulari;ation: <nit Su%%ary
>C? SAP AG BC400 35
14.36Cross;Pro*ra) 4o/&%ari5ation E$ercises
1nt: Cross-Program )odular/aton
Topc: *uncton )odules
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Sear* $!r a $u)ti!) m!'ule
/)sert a $u)ti!) m!'ule all i) a &r!5ram
C*a)5e y!ur &r!5ram =C!""/>>/DYNPRO !r t*e res&eti+e tem&late
as $!ll!%sE
.*e)e+er t*e "ancel !&ti!) is *!se) !) a sree)- a sta)'ar' 'ial!5 t*at
is e)a&sulate' i) a $u)ti!) m!'ule is t! be &r!esse'.
Program: =C!""/>>/DYNPRO
)odel soluton: SAPC!""UDS/DYNPRO/E
Template: SAPC!""UDS/DYNPRO/D
#:# C*a)5e y!ur &r!5ram =C!""/>>/DYNPRO !r !&y t*e tem&late
SAPC!""UDS/DYNPRO/D t! t*e )e% &r!5ram =C!""/>>/DYNPRO/D.
#:" ;si)5 !)e !$ t*e met*!'s !utli)e' 'uri)5 t*e !urse- sear* $!r t*e $u)ti!)
m!'ule t*at e)a&sulates t*e sta)'ar' 'ial!5 t*at is usually tri55ere' %*e) t*e user
*!!ses "ancel.
#:3 9i)' !ut ab!ut t*e $u)ti!) m!'ule i)ter$aes- rea' t*e '!ume)tati!)- a)' test t*e
$u)ti!) m!'ule usi)5 t*e test e)+ir!)me)t.
#:4 /) t*e G;/ status !$ t*e sree)- ati+ate t*e "ancel $u)ti!).
#:5 16te)' t*e USER/COMMAND/"<"" m!'ule t! e+aluate t*e $u)ti!) !'e $!r t*e
"ancel $u)ti!). 0*e) i)sert t*e $u)ti!) m!'ule all usi)5 t*e pattern $u)ti!) !$
t*e ABAP 1'it!r. Reat t! t*e userFs i)&ut t*at t*e $u)ti!) m!'ule su&&lies as
$!ll!%sE
- /$ t*e user %!ul' li(e t! a)el- set t*e )e6t sree) 'y)amially t! 0.
- /$ t*e user '!es )!t %a)t t! a)el- set t*e )e6t sree) 'y)amially t! #00.
#:6 C*a)5e t*e $u)ti!) !'e Buery t! SA;E by usi)5 t*e C!""/UPDATE/OO@
$u)ti!) m!'ule t! sa+e t*e 'ata *a)5e' !) t*e sree). Pass t*e *a)5e' 'ata t!
t*e $u)ti!) m!'ule i) t*e !rret ty&e. /$ t*e *a)5e %as '!)e suess$ully-
>C? SAP AG BC400 36
'is&lay messa5e #48 !$ ty&e S a)' messa5e lass C!""- a)' t*e) retur) t! t*e list.
/$ t*e *a)5e is )!t suess$ul- 'is&lay messa5e #48 !$ ty&e 1.
>C? SAP AG BC400 3A
("ercses
1nt: Cross-Program )odular/aton
Topc: ABAP +b,ects and the A4@ 5rd Control
At t*e !)lusi!) !$ t*ese e6erises- y!u %ill be able t!E
Dis&lay a sim&le list usi)5 a) A37 5ri' !)tr!l
.rite a &r!5ram t*at 'is&lays t*e !)te)ts !$ t*e 'atabase table SPFLI
usi)5 a) A37 5ri' !)tr!l.
Program: =C!""/>>/AL;/GRID
)odel soluton: SAPC!""RUS/AL;/GRID
Template: SAPC!""RUT/AL;/GRID
":# C!&y t*e &r!5ram SAPC!""RUT/AL;/GRID- 5i+i)5 it t*e )ame
=C!""/>>/AL;/GRID. /) t*e tem&late- t*ere is a) i)ter)al table t*at mat*es
t*e 'atabase table SPFLI a)' als! a sree) %it* t*e )umber #00.
":" Be!me $amiliar %it* t*e &r!5ram.
":3 9ill t*e i)ter)al table %it* 'ata re!r's $r!m t*e 'ata table SPFLI usi)5 t*e Array
9et*0
":4 Create a !)tai)er !)tr!l area !) t*e sree) >)ame &r!&!salE CONTAINER/<?.
":5 De$i)e t%! re$ere)e +ariables- !)e $!r t*e CL_G+I_C+STOM_CONTAINER lass
a)' !)e $!r t*e CL_G+I_AL*_GRID lass.
":6 At PROCESS BEFORE O+TP+T !$ sree) #00- all a m!'ule t! reate t*e !bGets
usi)5 t*e CREATE OBEECT ABAP stateme)t. Als!- $ill i) t*e reBuire' &arameters
$!r t*e !)strut!r met*!'s !)er)e'. ;se a Buery t! e)sure t*at t*e !bGet is
5e)erate' !)ly %*e) PROCESS BEFORE O+TP+T ru)s $!r t*e $irst time.
":A .*e) PROCESS BEFORE O+TP+T ru)s $!r t*e $irst time- all t*e
SET_TABLE_FOR_FIRST_DISPLAY met*!'- &ass t*e )ame !$ t*e li)e ty&e !$
t*e i)ter)al table t! t*e I_STR+CT+RE_NAME &arameter- a)' &ass t*e i)ter)al
table t! t*e &arameter IT_O+TTAB.
>C? SAP AG BC400 38
14.37Cross;Pro*ra) 4o/&%ari5ation So%&tions
1nt: Cross-Program )odular/aton
Topc: *uncton )odules
#:" 0*e $u)ti!) m!'ule is alle' OPOPUP/TO/CONFIRM/LOSS/OF/DATAY.
#:3 0*ere are t*e $!ll!%i)5 i)ter$ae &arametersE
ReBuire' im&!rt &arametersE
TEXTLINE< >ma6 A0 *ar.? 9irst li)e !$ t*e 'ial!5 %i)'!%
TITEL >ma6 35 *ar.? 0itle li)e !$ t*e 'ial!5 b!6
O&ti!)al im&!rt &arametersE
TEXTLINED >ma6 A0 *ar.? Se!)' li)e !$ t*e 'ial!5 b!6
START/COLUMN >0y&e SY/C+COL? 9irst !lum) !$ t*e 'ial!5 %i)'!%
START/RO3 >0y& SY/C+ROW?E 9irst li)e !$ t*e 'ial!5 b!6
16&!rt &arametersE
ANS3ER >0y&e C?E ;serFs i)&ut
O=P N user *as !)$irme' t*e &r!essi)5 ste& >Ga N yes?
ONP N user *as a)ele' t*e &r!essi)5 ste&
#:4 0*e sta)'ar' $u)ti!) !'e $!r t*e "ancel $u)ti!) is R3.
#:5
2U1111111111111111111111111111111111111111111111111112
2U Mod-&e +SER_COMMAND_0500 INP+T
2U1111111111111111111111111111111111111111111111111112
MOD+LE -,e_.ommand_0500 INP+T%
CASE o9_.ode%
W0EN BBACKB%
SET SCREEN 0%
3HEN 9R390
14.38 CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
14.39 EXPORTING
te?tl#ne< 7 te?t1""<
t#tel 7 te?t1""D
IMPORTING
ans.e% 7 ans.e%0
CASE ans.e%0
.&en 9N90
LEA;E TO SCREEN <""0
.&en 9R90
LEA;E TO SCREEN "0
ENDCASE0
W0EN BSA*EB%
MO*E/CORRESPONDING ,d$n_)oo9 TO ;a_,)oo9%
CALL FUNCTION 9C!""/UPDATE/OO@9
EXPORTING
>C? SAP AG BC400 38
#v/,ooM 7 .a/s,ooM
EXCEPTIONS
,ooM/not/+o)n4 7 <
)p4ate/s,ooM/%e-e$te4 7 D
,ooM/lo$Me4 7 B
$)%%en$'/$onve%s#on/e%%o% 7 !
OTHERS 7 O0
IF s'1s),%$ 7 "0
MESSAGE s<!VA,$!""C0
SET SCREEN "0
ELSE0
MESSAGE e<!XA,$!""C0
ENDIF0
ENDCASE%
ENDMOD+LE% K +SER_COMMAND_0500 INP+T
>C? SAP AG BC400 40
0olutons
1nt: Cross-Program )odular/aton
Topc: ABAP +b,ects and A4@ 5rd Control
":3 START/OF/SELECTION%
< !"&& "n#ena& #a)&e
SELECT 2 FROM sp+l#
INTO TALE (4t/sp+l#0
< W0ERE %%%
CALL SCREEN 500%
":4 ;si)5 t*e sree) lay!ut $u)ti!)- reate a !)tr!l !)tai)er area >se!)':last i!) i)
t*e t!!lbar?. Call t*e !)tai)er area C+-TA2-(%>D.
":5 9ill i) t*e 'elarati!) &artE
DATA:
$onta#ne%/% TYPE REF TO CL/GUI/CUSTOM/CONTAINER6
(%#4/% TYPE REF TO CL/GUI/AL;/GRID0
":6 t! ":AE
*lo# logc:
PROCESS BEFORE O+TP+T%
MOD+LE STAT+S_0500%
MODULE $%eate/$ont%ol0
<
PROCESS AFTER INP+T%
MOD+LE .op$_o9_.ode%
MOD+LE +SER_COMMAND_0500%
PB+ module n the program:
2U111111111111111111111111111111111111111111111111111111112
2U Mo4)le CREATE/CONTROL OUTPUT
2U111111111111111111111111111111111111111111111111111111112
MODULE $%eate/$ont%ol OUTPUT0
IF $onta#ne%/% IS INITIAL0
CREATE ORECT $onta#ne%/%
EXPORTING $onta#ne%/name 7 9CONTAINER/<90
CREATE ORECT (%#4/%
EXPORTING #/pa%ent 7 $onta#ne%/%0
CALL METHOD (%#4/%1Lset/ta,le/+o%/+#%st/4#spla'
EXPORTING #/st%)$t)%e/name 7 9SPFLI9
CHANGING #t/o)tta, 7 (4t/sp+l#0
ENDIF0
ENDMODULE0 5 CREATE/CONTROL OUTPUT
>C? SAP AG BC400 4#
>C? SAP AG BC400 4"
+)
SAP AG 2001
7rgani;ation o$ de"elop%ent and transport
9nhance%ent o$ standard so$t&are
Contents:
So$t&are 2ogistics and So$t&are Ad6ust%ent
>C? SAP AG BC400 #
15.2
SAP AG 2001
<se the tools and concepts you need $or
organi;ing de"elop%ent
8escribe ho& to a"oid %odi$ications to SAP
ob6ects
At the conclusion o$ this unit0 you &ill be able to:
So$t&are 2ogistics and So$t&are Ad6ust%ent:
<nit 7b6ecti"es
>C? SAP AG BC400 "
15.3
SAP AG 2001
7rgani;ation o$ 8e"elop%ent and Transport
7rgani;ation o$ de"elop%ent and transport
7rgani;ation o$ de"elop%ent and transport
9nhance%ent o$ standard so$t&are
9nhance%ent o$ standard so$t&are
>C? SAP AG BC400 3
15.4
SAP AG 2001
Assigning Transport -outes
89?
8e"elop%ent
syste%
FAS
Test and
translation
syste%
P-8
Production
syste%
SAP
D89?
Custo%er de"elop%ent
Standard ob6ects and
%odi$ications
!!!
Transport layer
!!!
!!!

D89?
!!!
#rea!e e)elo$*en! class
/$ y!u reate a 'e+el!&me)t lass $!r y!ur !%) 'e+el!&me)ts- t*e system aut!matially assi5)s t*e
!rret tra)s&!rt layer. 0*is sets t*e tra)s&!rt r!ute $!r t*e Re&!sit!ry !bGets t*at are assi5)e' t!
t*is 'e+el!&me)t lass.
@!u a) see t*e urre)t system !)$i5urati!) i) t*e 0ra)s&!rt Ma)a5eme)t System by *!!si)5
Tools A!ministration Transports Transport 7ana'ement &ystem?.
>C? SAP AG BC400 4
15.5
SAP AG 2001
Workbench 7rgani;er: -e5uests
Ioint Transport Assign%ent
Tea%:
Pro6ect (anager:
F-A
F-A
BC400=00
BC400=0+
BC400=02
BC400=03
!!!
#han(e re.ues!s "n)ol)"n( user B#400900
#han(eable
,rans$or!able
0,3>9000%1 #ARS8?
0,3>9000%2 #ARS8?
0,3>9000%3 B#400900
Re$or! source
@B#400A00AF/0GB,/0S,
ABAP $ro(ra*
0,3>9000%4 B#400901
0,3>9000%% B#400902
0,3>9000%6 B#400903
0,3>9000%< ...
-e5uest nu%ber
Pro6ect
(anager
Task nu%ber
-epository ob6ects
created or corrected
by e%ployee
<ser
At t*e be5i))i)5 !$ a 'e+el!&me)t &r!Get- t*e pro,ect manager reates a change re.uest. 0*e
&r!Get ma)a5er assi5)s all &r!Get team members t! t*e *a)5e reBuest. 0*e .!r(be)* Or5a)iCer
>.BO? t*e) reates a task $!r ea* &r!Get 'e+el!&er.
9r!m )!% !)- %*e)e+er a) em&l!yee assi5)s a Re&!sit!ry !bGet t! t*is *a)5e reBuest- t*e
Re&!sit!ry !bGet is aut!matially e)tere' i) t*at em&l!yeeIs task. All Re&!sit!ry !bGets t*at a)
em&l!yee %!r(s !) 'uri)5 a 'e+el!&me)t &r!Get are !llete' i) *is !r *er tas( $!l'er. 0*e
Re&!sit!ry !bGets are- t*ere$!re- l!(e' $!r all 'e+el!&ers %*! '! )!t bel!)5 t! t*is &artiular
&r!Get.
;)li(e t*e l!5ial $u)ti!)al 'i+isi!)s t*at se&arate Re&!sit!ry !bGets t*r!u5* t*e res&eti+e
'e+el!&me)t lass- *a)5e reBuests are &r!Get:relate' a)'- t*ere$!re- lmted %it* re5ar' t! t*e tme
schedule i)+!l+e'. 0*us- alt*!u5* a &r!5ram al%ays bel!)5s t! !)ly !)e 'e+el!&me)t lass- it a)
bel!)5 t! 'i$$ere)t *a)5e reBuests at 'i$$ere)t times.
>C? SAP AG BC400 5
15.6
SAP AG 2001
8e"eloperKs Tasks at 9nd o$ 8e"elop%ent Process
Tea%:
Pro6ect (anager:
F-A
F-A
BC400=00
BC400=0+
BC400=02
BC400=03
!!!
Schedule: ! ! ! Thursday Friday
Task is released
Task 5uality control:
H Synta' check
H Acti"ation o$ inacti"e ob6ects
Task docu%entation
.*e) 'e+el!&me)t is $i)is*e'- t*e de$eloper arries !ut a $i)al Buality *e( a)' releases t*e task.
0*e !bGets a)' !bGet l!(s are &asse' $r!m t*e tas( t! t*e *a)5e reBuest. <!%e+er- all em&l!yees
assi5)e' t! t*e tas( a) still ma(e *a)5es t! t*e !bGet beause t*e .!r(be)* Or5a)iCer
aut!matially reates a )e% tas( i$ )eessary.
>C? SAP AG BC400 6
15.7
SAP AG 2001
Pro6ect (anagerKs Tasks at 9nd o$ 8e"elop%ent Process
Schedule: ! ! ! Thursday Friday
-e5uest is released
Tea%:
Pro6ect (anager:
F-A
F-A
BC400=00
BC400=0+
BC400=02
BC400=03
!!!
Schedule: ! ! ! Thursday Friday
Task 5uality control:
H Synta' check
H 4nacti"e ob6ects
H Task consistency
Pro6ect docu%entation
?ersion %anage%ent
.*e) t*e &r!Get is !m&lete- t*e pro,ect manager *e(s t*e !)siste)y !$ t*e reBuest a)'
releases t*e *a)5e reBuest. 0*e l!(s !) t*e !bGets i) t*e reBuest are release'. 0*e 'e+el!&me)t
status !$ e+ery a$$ete' Re&!sit!ry !bGet is st!re' i) t*e +ersi!) ma)a5eme)t.
C!&ies !$ t*e Re&!sit!ry !bGets are t*e) e6&!rte' t! t*e e)tral tra)s&!rt 'iret!ry.
0*e system admnstrator i)itiates t*e im&!rti)5 !$ t*e !bGets i)t! t*e tar5et systemH t*is '!es )!t
*a&&e) aut!matially.
A$ter%ar's- t*e de$eloper *e(s t*e im&!rt l!5s.
>C? SAP AG BC400 A
15.8
SAP AG 2001
7riginals and Copies
Copy Copy
7riginal 7riginal
Copy Copy
Copy Copy
7riginal 7riginal
SAP ob6ect
Subse5uent syste% Subse5uent syste%
SAP ob6ect SAP ob6ect
Custo%er ob6ect Custo%er ob6ect
8e"elop%ent 8e"elop%ent
transport transport
8e"elop%ent syste% 8e"elop%ent syste%
.*e) y!u reate a Re&!sit!ry !bGet- t*e 0ra)s&!rt Or5a)iCer aut!matially )!tes t*e system i)
%*i* y!u reate' it. 0*e !ri5i)al !$ a Re&!sit!ry !bGet is i) a ertai) system.
0*e !ri5i)al +ersi!) !$ a) !bGet a) e6ist i) !)ly !)e system. All !t*er systems !)tai) !&ies !$
t*e !bGet.
0*e i'ea !$ *a+i)5 a) !ri5i)al system is t! e)sure t*at Re&!sit!ry !bGets a) be *a)5e' !)ly i) t*e
'e+el!&me)t system. 0*e i)te5rati!) system is %*ere y!u arry !ut y!ur 'e+el!&me)t %!r( s! all !$
t*e !bGets i) it are !ri5i)als. 0*is mea)s t*ere is !)e e)tral l!ati!) $!r *a)5i)5 all Re&!sit!ry
!bGets.
/$ y!u )!% tra)s&!rt y!ur Re&!sit!ry !bGets i)t! a subseBue)t system- t*ey e6ist t*ere as !&ies.
Alt*!u5* it is &!ssible t! *a)5e !&ies i) e6e&ti!)al ases- y!u s*!ul' al%ays try t! ma(e t*e
*a)5es t! t*e !ri5i)al i) t*e 'e+el!&me)t system a)' tra)s&!rt t*e )e% +ersi!) t! t*e subseBue)t
system $r!m t*ere. 0*is e)sures t*at t*e state !$ !bGets remai)s !)siste)t ar!ss systems.
Ori5i)als are )e+er !+er%ritte) i) tra)s&!rts.
>C? SAP AG BC400 8
15.9
SAP AG 2001
(odi$ied (odi$ied
copy copy
Corrected Corrected
original original
Copy Copy
Copy Copy
Corrected Corrected
original original
SAP ob6ect
Subse5uent syste% Subse5uent syste%
Correction Correction
transport transport
SAP ob6ect SAP ob6ect
Custo%er ob6ect Custo%er ob6ect
Correction Correction
-epair -epair Correction Correction
-epair -epair
transport transport
Corrections and -epairs
8e"elop%ent syste% 8e"elop%ent syste%
A correcton is a *a)5e t! a) !ri5i)al. 0*e system re!r's !rreti!)s i) a reBuest !)tai)i)5 tas(s
!$ ty&e !evelopment3correction.
A repar is a *a)5e t! a !&y >t*at is- a) !bGet is )!t *a)5e' i) its !ri5i)al system?. A!r'i)5ly-
t*is *a)5e is re!r'e' i) a tas( %it* ty&e repair. A modfcaton is a re&air !$ a) SAP !bGet.
0*e *a)5es ma'e t! y!ur !%) !bGets >$!r e6am&le- 'ue t! a) emer5e)y i) t*e &r!'uti!) system?
a) als! be ma'e imme'iately t! t*e !ri5i)als i) t*e 'e+el!&me)t system. 7ou must make the
changes you made to the copes mmedately to the orgnal as #ell a)' tra)s&!rt t*e )e% +ersi!)
t! t*e subseBue)t system.
0*is is )!t &!ssible $!r SAP !bGets beause t*e !ri5i)als are )!t i) a)y !$ y!ur systems.
>C? SAP AG BC400 8
15.10
SAP AG 2001
(odi$ications 8uring <pgrade
(odi$ied (odi$ied
copy copy
Corrected Corrected
original original
Copy Copy
Copy Copy
Corrected Corrected
original original
SAP ob6ect
Subse5uent syste% Subse5uent syste%
Ad6ust%ent Ad6ust%ent
transport transport
SAP ob6ect SAP ob6ect
Custo%er ob6ect Custo%er ob6ect
<pgrade <pgrade
<pgrade <pgrade
(odi$ication (odi$ication
ad6ust%ent ad6ust%ent
8e"elop%ent syste% 8e"elop%ent syste%
A !)$lit !ul' !ur i$ y!u im&!rt a) u&5ra'e- a su&&!rt &a(a5e- !r s!me !t*er tra)s&!rt reBuest
$r!m SAP i)t! y!ur system.
Su* a !)$lit !urs i$ a) SAP !bGet m!'i$ie' by y!u is )e%ly s*i&&e' by SAPE 0*e !bGet )e%ly
tra)s&!rte' by SAP be!mes a) ati+e !bGet i) t*e Re&!sit!ry !$ y!ur system.
/$ y!u %a)t t! sa+e y!ur *a)5es- y!u *a+e t! ma(e a modfcaton ad,ustment $!r t*e
!rres&!)'i)5 !bGets. M!'i$yi)5 a )umber !$ SAP !bGets a) ause a substa)tial 'elay %*e)
&er$!rmi)5 a) u&5ra'e.
0! e)sure t*at t*e 'e+el!&me)t system a)' t*e subseBue)t system are !)siste)t- y!u s*!ul' make
the modfcaton ad,ustment n the de$elopment system only. 0*e !bGets !$ t*e a'Gustme)t are
t*e) tra)s&!rte' t! subseBue)t systems.
>C? SAP AG BC400 #0
15.11
SAP AG 2001
9nhance%ent o$ Standard So$t&are
7rgani;ation o$ de"elop%ent and transport
7rgani;ation o$ de"elop%ent and transport
9nhance%ent o$ standard so$t&are
9nhance%ent o$ standard so$t&are
>C? SAP AG BC400 ##
15.12
SAP AG 2001
7"er"ie&: So$t&are Ad6ust%ent Possibilities
Business Business
applications applications
,SAP ob6ects. ,SAP ob6ects.
Custo%er Custo%er
ob6ects ob6ects
(odi$ication (odi$ication
Custo%er Custo%er
de"elop%ents de"elop%ents
assisted
not assisted
8ictionary ob6ect
ABAP source code
Screen
4nter$ace
using SAP ob6ects
not using SAP
ob6ects
9nhance%ent 9nhance%ent
0*ere are $!ur 'i$$ere)t %ays !$ *a)5i)5 t*e SAP system t! meet y!ur reBuireme)tsE
Custom/ng:
All!%s y!u t! *a)5e system &arameters usi)5 y!ur !%) mai)te)a)e tra)sati!). All &!ssible
*a)5es *a+e bee) t*!u5*t !$ a)' !r5a)iCe'. Cust!miCi)5 is a ma)'at!ry &art !$ setti)5 u& a)
SAP system.
(nhancement concept:
All!%s y!u t! *a)5e SAP Re&!sit!ry !bGets #thout modfcatons.
Customer de$elopments:
All!%s y!u t! reate Re&!sit!ry !bGets i) a!r'a)e %it* t*e ust!mer )ames&ae !)+e)ti!)s.
)odfcaton Assstant:
All!%s y!u t! *a)5e SAP Re&!sit!ry !bGets. M!'i$iati!)s a) lea' t! a !)si'erably 5reater
%!r(l!a' $!r a) u&5ra'e. /$ t*e )e% release *as *a)5es t! t*e same Re&!sit!ry !bGet t*at %as
&re+i!usly m!'i$ie'- y!u *a+e t! a'Gust t*e +ersi!)s ma)ually. 0*e M!'i$iati!) Assista)t
su&&!rts a'Gustme)t !$ +ersi!)s semi:aut!matially. 9!r m!re 'etails- re$er t! t*e !)li)e
'!ume)tati!)E Basis ABAP Workbench "han'in' the &AP &tan!ar! The 7o!ification
Assistant.
>C? SAP AG BC400 #"
15.13
SAP AG 2001
9nhance%ent Concept <sing the Function (odule
9'it as an 9'a%ple
CALL CUSTOMER1FUNCTION 9""E9
000 0
REPORT Ksap/p%o(%am/nameL0 REPORT Ksap/p%o(%am/nameL0
START1OF1SELECTION0 START1OF1SELECTION0
000 000
INCLUDE INCLUDE P? P?KnameL)"<0 KnameL)"<0
000 000
2 e?ten4e4 +)n$t#onal#t' 2 e?ten4e4 +)n$t#onal#t'
000 000
7b6ect in custo%er
na%espace
FUNCTION e?#t/Ksap/p%o(%am/nameL/""E0
INCLUDE P?KnameL)"<0
ENDFUNCTION0
9nhance%ent call
SAP !bGets are usually e)*a)e' as s*!%) ab!+e.
0*e SAP !bGet e)ables y!u t! 5! t! a ust!mer !bGet. Si)e t*is !bGet usually '!es )!t e6ist- y!u
*a+e t! im&leme)t it i) t*e s&ei$ie' ma))er.
Di$$ere)t e)*a)eme)t te*)iBues are im&leme)te' 'i$$ere)tly. De&e)'i)5 !) t*e e)*a)eme)t
te*)iBue- y!u *a+e t! use a 'i$$ere)t mai)te)a)e tra)sati!) t! reate t*e !rres&!)'i)5 !bGets
a)' ati+ate t*e e)*a)eme)t.
0*e !rres&!)'i)5 mai)te)a)e tra)sati!) *as a sear* $u)ti!) $!r $i)'i)5 a suitable e)*a)eme)t.
@!u a) als! $i)' '!ume)tati!) ab!ut t*e !rres&!)'i)5 e)*a)eme)t *ere.
>C? SAP AG BC400 #3
15.14
SAP AG 2001
9nhancing <ser 8ialogs
Flight data 9dit oto Syste% :elp
Continue
First line
Last line
8ac.
Table .ind
8ac.
Custo2er $unction
Airline LH
(enu e'it
Flight number 400
Field e'it
Additional $ield -
Additional $ield /
Screen e'it
Te't and
docu%entation
enhance%ent to
data ele%ent
1)*a)eme)t !$ user 'ial!5s is &!ssible at t*e $!ll!%i)5 le+elsE
Q )enu e"t:
0*e system !)tai)s +ari!us &!i)ts at %*i* y!u a) i)lu'e me)u items t*at all ust!mer
$u)ti!)s.
Q 0creen e"t:
S!me sree)s !)tai) s&eial areas >subsree)s? i) %*i* y!u a) 'is&lay y!ur !%) sree)s.
Q *eld e"t:
@!u a) atta* a''iti!)al *e(s !r !)+ersi!)s t! $iel's !) sree)s.
/) t*e ABAP Diti!)ary- y!u a) als! e)*a)e attributes !$ 'ata eleme)tsE
Q *eld documentaton:
@!u a) re&lae t*e $iel' '!ume)tati!)- %*i* is 'is&laye' %*e) t*e user &resses 9# %it* y!ur
!%) te6ts.
Q *eld label:
@!u a) re&lae t*e s*!rt- me'ium- a)' l!)5 te6t $iel' labels %it* y!ur !%) te6t.
>C? SAP AG BC400 #4
15.15
SAP AG 2001
Further 9nhance%ent 9'a%ples
Append structure:
Additional $ields in standard tables
Prede$ined but not yet e$$ecti"e source code
Business Add 4n ,BAd4.:
7b6ect=oriented 9nhance%ent
/) a''iti!) t! t*e e)*a)eme)t te*)iBues alrea'y me)ti!)e'- !t*er !&ti!)s i)lu'eE
Append structures:
@!u a) reate a)y )umber !$ a&&e)' strutures $!r e+ery sta)'ar' table. .it* t*is $eature- y!u
a) a&&e)' $iel's t! a table %it*!ut *a)5i)5 t*e table itsel$.
Predefned but not yet effect$e source code:
/) s!me sta)'ar' &r!5rams- s&ei$i s!ure !'e areas are !mme)te' !ut. /$ t*e !mme)t
symb!ls >asteris(s? are rem!+e' $r!m t*ese li)es !$ s!ure !'e- t*e li)es %ill be e6eute'. 0*is is
te*)ially a m!'i$iati!)- *!%e+er.
Busness Add 2ns ABAd2sB:
As %it* a $u)ti!) m!'ule e6it- y!u a) 'e$i)e a''iti!)al &r!5ram l!5i $!r a&&r!&riate sta)'ar'
&r!5rams. Busi)ess A'' /)s are !bGet:!rie)te' a)' !$$er a''iti!)al !&ti!)s.
>C? SAP AG BC400 #5
15.16
SAP AG 2001
-egistering 8e"elopers in the SSC-
SAP So$t&are Change -egistration
,SSC-.
SAP So$t&are Change -egistration SAP So$t&are Change -egistration
,SSC-. ,SSC-.
H Aou %ust register de"elopers
using the SSC- procedure
H 9ach de"eloper obtains an
access key
H For e"ery de"eloper0 you need
only apply once $or an access
key
H H Aou %ust register de"elopers Aou %ust register de"elopers
using the SSC- procedure using the SSC- procedure
H H 9ach de"eloper obtains an 9ach de"eloper obtains an
access key access key
H H For e"ery de"eloper0 you need For e"ery de"eloper0 you need
only apply once $or an access only apply once $or an access
key key
H Aou %ust register %odi$ied
SAP ob6ects using the SSC-
procedure
H 9ach ob6ect obtains an access
key
H Aou can only apply $or an
access key $or an ob6ect in
each ->3 -elease
H H Aou %ust register %odi$ied Aou %ust register %odi$ied
SAP ob6ects using the SSC- SAP ob6ects using the SSC-
procedure procedure
H H 9ach ob6ect obtains an access 9ach ob6ect obtains an access
key key
H H Aou can only apply $or an Aou can only apply $or an
access key $or an ob6ect in access key $or an ob6ect in
each ->3 -elease each ->3 -elease
-egister SAP ob6ects to -egister SAP ob6ects to
be changed be changed
-egister de"elopers &ho use -egister de"elopers &ho use
the ABAP Workbench the ABAP Workbench
All users %*! %a)t t! use t*e ABAP .!r(be)* t! reate !r *a)5e a Re&!sit!ry !bGet i) t*e SAP
system >i)lu'i)5 ust!mer 'e+el!&me)ts? must ma(e a sngle reBuest $!r a (ey usi)5 t*e SAP
S!$t%are C*a)5e Re5istrati!) >SSCR? &r!e'ure.
A$ter re5istrati!)- all 'e+el!&ers reei+e a (ey. 0*e (ey is li)(e' t! t*e 'e+el!&erIs user /D a)' t*e
lie)se )umber !$ t*e SAP system. 0*e system &r!m&ts 'e+el!&me)t users $!r t*eir (ey t*e $irst time
t*ey attem&t t! reate !r *a)5e a Re&!sit!ry !bGet.
A''iti!)ally- e+ery SAP Re&!sit!ry !bGet t*at is modfed must be re5istere'. .*e) re5isteri)5
t*ese !bGets- y!u must s&ei$y t*e Re&!sit!ry !bGet )ame- t*e !bGet ty&e- a)' t*e SAP system
lie)se )umber a)' release. 0*e re5istrati!) is +ali' u)til t*e )e6t u&5ra'e.
>C? SAP AG BC400 #6
15.17
SAP AG 2001
<se the tools and concepts you need $or
organi;ing de"elop%ent
8escribe ho& to a"oid %odi$ications to SAP
ob6ects
Aou are no& able to:
So$t&are 2ogistics and So$t&are Ad6ust%ent:
<nit Su%%ary
>C? SAP AG BC400 #A
+*
SAP AG 2001
Appendi'
This section contains supple%entary %aterial
to be used as re$erence!
This %aterial is not part o$ the standard course!
There$ore0 the instructor %ight not co"er this during
the course presentation!
16.2
SAP AG 2001
Progra% Types
Progra% Types
Progra% Types
8ata Types0 8ata 7b6ects0 and State%ents
8ata Types0 8ata 7b6ects0 and State%ents
2ogical 8atabases
2ogical 8atabases
Pre"ie&
Pre"ie&
>C? SAP AG BC400 "
16.3
SAP AG 2001
4nclude: NincludeCna%eO
, Progra% type: 4nclude .
Progra%: Nprogra%Cna%eO
REPORT Kp%o(%am/nameL0
:
INCLUDE K#n$l)4e/nameL0
:
ABAP state%ents
Progra%s o$ S4ncludeS Type
>C? SAP AG BC400 3
16.4
SAP AG 2001
REPORT KnameL0
TYPES:000
DATA: 000
Progra%: Nna%eOT7P
Progra% type: 4nclude
Progra%: Nna%eO
Progra% type: e'ecutable
INCLUDE KnameLTOP0
START1OF1SELECTION0
:
Create progra%
progra% Nna%eO
With T7P=4nclude
-epository Bro&ser:
Create progra%
T7P 4nclude
>C? SAP AG BC400 4
16.5
SAP AG 2001
Standard 4ncludes $or Function roups
The 7b6ect 2ist 9dit oto <tilities 9n"iron%ent Syste% :elp
3"<ect -a.i*ator
The )b9ect List
Display
BC402_F!!_"#I$LIS$ Function group
Class
Local )b9ects
Develop2ent class
progra2
Workbench 9dit oto 9'tras 9n"iron%ent Syste% :elp
3"<ect -a.i*ator
)b9ect na2e
8C+&/#F!DD#:AITLIST
Function 2odules
Fields
08) 2odules
Screens
5*I title
Includes
L8C+&/#F!DD#:AITLISTT)0
L8C+&/#F!DD#:AITLIST)&-
L8C+&/#F!DD#:AITLIST*&-

L8C+&/#F!DD#:AITLIST*&/
L8C+&/#F!DD#:AITLIST*&'
L8C+&/#F!DD#:AITLIST*&+
L8C+&/#F!DD#:AITLIST*&6
L8C+&/#F!DD#:AITLIST*&;
L8C+&/#F!DD#:AITLIST*44
Add <aiting custo2er
:aiting custo2er $ro2 list
Display <aiting list
!ove up <aiting custo2er
%eturn position in list
Change <aiting position
Function %odules Function %odules Function %odules Function %odules Function %odules
PB7 %odules
lobal declarations
4nclude $unction %odules
.*e) y!u %!r( %it* $u)ti!) 5r!u&s a)' m!'ules- y!u a) use t*e ABAP .!r(be)* t! arra)5e t*e
&r!5ram s!ure !'e i) !+er+ie% $!rm a)' struture it %it* ease.
/) t*e Na+i5ati!) $u)ti!)- y!u al%ays bra)* t! t*e !rret !bGet- a)' /)lu'e &r!5rams are 5i+e)
)ames a)' reate'. 0*e res&eti+e all stateme)ts are aut!matially e)tere' at t*e !rret &!siti!).
0*e all stateme)ts must !)tai) !)ly t*e )ame !)+e)ti!) $!r $u)ti!) 5r!u&sE YG
=2em_name3%
0*e system t*e) reates a &r!5ram !$ 9 ty&e- SAPLYG=2em_name3% 0*is !)tai)s !)ly
INCLUDE stateme)ts t*at %ere reate' aut!matially. 0*e /)lu'e &r!5rams are aut!matially 5i+e)
t*e )ame LYG=2em_name32a))e432n-m3%
/) a''iti!)- t*e system i)lu'es t*e /)lu'e &r!5ram- LYG=2em_name3UXX. <ere- t*ere is a all
$!r a) a&&r!&riate /)lu'e &r!5ram- 47KLLremU)ameM1L)umM- $!r ea* $u)ti!) m!'ule.
>C? SAP AG BC400 5
16.6
SAP AG 2001
8ata Types0 8ata 7b6ects0 and State%ents
Progra% Types
Progra% Types
8ata Types0 8ata 7b6ects0 and State%ents
8ata Types0 8ata 7b6ects0 and State%ents
2ogical 8atabases
2ogical 8atabases
Pre"ie&
Pre"ie&
>C? SAP AG BC400 6
16.7
SAP AG 2001
Structures and internal Tables Can be #ested
Struture ty&es a) !)tai) !t*er struture ty&es !r table ty&es.
0able ty&es a) !)tai) struture ty&es a)' table ty&es.
/) t*e (ey%!r' '!ume)tati!) $!r t*e (ey%!r' TYPES- y!u %ill $i)' t*e sy)ta6 $!r 'e$i)i)5 table
ty&es.
>C? SAP AG BC400 A
16.8
SAP AG 2001
TYPE1POOL =!""0
TYPES: P!""/name/t'peADOC TYPE C6
EGIN OF P!""/+l#(&t%e$/t'pe6
000 6
END OF P!""/+l#(&t%e$/t'pe0
REPORT 000 0
TYPE1POOLS P!""0
DATA: name TYPE P!""/name/t'pe6
.a TYPE P!""/+l#(&t%e$/t'pe0
000 0
ABAP
Type roups in the ABAP 8ictionary
/) a''iti!) t! 'elari)5 a 'ata ty&e %it*i) a) ABAP &r!5ram- y!u a) als! 'elare 'ata ty&es i) a
ty&e 5r!u& i) t*e ABAP Diti!)ary.
0*e ty&e 5r!u& )ame i) t*e ABAP Diti!)ary *as a ma6imum !$ $i+e *araters. 0y&e )ames %it*i)
t*e ty&e 5r!u& 2#$ppoo&3 must be5i) %it* 2#$ppoo&3 $!ll!%e' by a) u)'ers!re.
0*e ty&es i) a ty&e 5r!u& must be 'elare' i) ABAP &r!5rams %it* t*e TYPE/POOLS !mma)'.
>C? SAP AG BC400 8
16.9
SAP AG 2001
Type Con"ersion
When are t&o types co%patible@
T&o ele%entary types are co%patible i$ they are identical in
type and length ,and nu%ber o$ deci%al places in the case o$
packed nu%bers.!
T&o structure types are co%patible i$ they ha"e the sa%e
structure and their co%ponents are co%patible!
T&o table types are co%patible i$ their line types are
co%patible and their key de$initions0 key categories0 and table
types are identical!
8ata ob6ects &ith co%patible types can be assigned
&ithout con"ersion!
#on=co%patible types can be con"erted i$ a con"ersion
rule has been de$ined!
/$ t%! 'ata ty&es are )!t !m&atible- but a !)+ersi!) rule e6ists- t*e) t*e system
&er$!rms ty&e !)+ersi!)s $!r +alue assi5)me)ts- alulati!)s- !r !m&aris!)s.
0*e $!ll!%i)5 5ra&*is i)tr!'ue t*e basi $!rms !$ !)+ersi!) rules a)' 5i+e e6am&les
!$ t*e m!st im&!rta)t ases. All t*e !)+ersi!) rules a) be $!u)' i) t*e ABAP '!ume)tati!)
!) t*e MO71 stateme)t.
/$ )! !)+ersi!) rule is 'e$i)e' $!r a stateme)t- t*e systemIs reati!) 'e&e)'s u&!)
t*e &artiular &r!5ram !)te6tE
/) t*e ase !$ statstcal types9 t*e system issues a synta" error.
("ampleE
DATA: 4ate TYPE 4 ;ALUE 9<XXX<DB<96 t#me TYPE t0
FIELD1SYMOLS: K+s/4ateL TYPE 46 K+s/t#meL TYPE t0
ASSIGN: 4ate TO K+s/4ateL6 t#me TO K+s/t#meL0
K+s/t#meL 7 K+s/4ateL0
/) t*e ase !$ dynamc ty&es- t*e system issues a runtme error si)e t*e t*e $iel' symb!ls are
ty&e' !)ly %*e) t*e 'ata !bGets are assi5)e' at ru)time.
("ample >rest as ab!+e?E
!!!
FIELD1SYMOLS: K+s/4ateL TYPE ANY6 K+s/t#meL TYPE ANY!
!!!
>C? SAP AG BC400 8
16.10
SAP AG 2001
2ogical 9'pressions
2 $ompa%#sons +o% all 4atat'pes:
00 K4o,-L ZE8G7[ ZKl#te%alLGK4o,-L[ 00 5eI)al
00 K4o,-L ZNEGKL[ ZKl#te%alLGK4o,-L[ 00 5not eI)al
00 K4o,-L ZGTGL[ ZKl#te%alLGK4o,-L[ 00 5(%eate% t&an
00 K4o,-L ZGEGL7[ ZKl#te%alLGK4o,-L[ 00 5(%eate% o% eI)al
00 K4o,-L ZLTGK[ ZKl#te%alLGK4o,-L[ 00 5less t&an
00 K4o,-L ZLEGK7[ ZKl#te%alLGK4o,-L[ 00 5less o% eI)al
00 K4o,-L ET3EEN ZKl#tLGK4o,-L[ AND ZKl#tLGK4o,-L[ 00
00 K4o,-L IS INITIAL 00
2 nest#n( lo(#$ e?p%ess#ons:
00 Knest/opL A Ke?p%<L Knest/opL Ke?p%DL C Knest/opL 00
2 poss#,le ope%ato%s Knest/opL:
00 AND 00 5all e?p%ess#ons m)st ,e t%)e
00 OR 00 5one o+ t&e e?p%ess#ons m)st ,e t%)e
2 ne(at#on:
00 NOT Ke?p%L 00 5t%)e6 #+ Ke?p%L +alse
/$ y!u *a+e a !m&aris!) !$ non-numerc 'ata !bGets- t*ese are i)ter&rete' 'i$$ere)tly- 'e&e)'i)5
u&!) ty&e.
/$ &!ssibleE !)+ersi!) i) )umbers >*e6a'eimal- $!r e6am&le- as bi)ary )umber?
Date a)' timeE i)ter&rete' as earlier !r laterH $!r e6am&le- #"/3#/#888 L 0#/0#/"000
Ot*er *aratersE le6!5ra&*ial i)ter&retati!) a!r'i)5 t! *arater !'eH a'a&t le)5t* by $illi)5 i)
bla)(s
Re$ere)esE !m&aris!) !$ a''ress a)' 'ata ty&e- !)ly Oi'e)tialO a) be i)ter&rete' suitably
9!r !m&aris!)s !$ stri)5s a)' bits- m!re relati!)al !&erat!rs are a+ailable >see !)li)e
'!ume)tati!) $!r /9?.
/) t*e ase !$ li)(s a)' )e5ati!)s- t*e sta)'ar' rules $!r l!5ial e6&ressi!)s a&&lyE
-+T is m!re &!%er$ul t*a) A-3- A-3 is m!re &!%er$ul t*a) +%.
("ample
-+T fD M f? +% f' M f4 A-3 fN M fO t*ere$!re !rres&!)'s t!
A -+T A fD M f? B B +% A f' M f4 A-3 fN M fO B.
0! *a+e a better !+er+ie% a)' $!r seurity reas!)s- &lae y!ur &artial e6&ressi!)s i) bra(ets- e+e) i$
it is )!t abs!lutely )eessary.
By setti)5 u& y!ur e6&ressi!)s are$ully- y!u a) i)$lue)e t*e ru)time reBuireme)t i) a &!siti+e
%ay.
>C? SAP AG BC400 #0
16.11
SAP AG 2001
7"er"ie&: Ter%ination State%ents
2oops:
87 W:429
S929CT 277P
9"ents 4:
27A8=7F=P-7-A(!
STA-T=7F=S929CT47#!
9T NnodeO T2AT9U!
9#8=7F=S929CT47#!
9"ents 44:
4#4T4A24DAT47#!
AT S929CT47#=SC-99# T7<TP<TU!
T7P=7F=PA9!
9#8=7F=PA9!
AT 24#9=S929CT47#!
AT <S9-=C7((A#8!
(odulari;ation units
8isplay %essage
then
progra% end
and
delete all internal
%odes
MESSAGE a00 EXIT CHEC@
LEA;E
PROGRAM
LEA;E TO
TRANSACTION
Progra% end
#e'trun
2ea"eloop
8isplay
list bu$$erX
9'ecute
e"ent
blocks 44
9nd current
processing block
and proceed
&ith ne't
processing block
ABAP e+e)t bl!(s !r m!'ulariCati!) u)its >subr!uti)es- m!'ules? are alle' processng blocks.
0*e C0ECK &o'"._e1p stateme)t *as t*e $!ll!%i)5 e$$etE
+utsde a loop- y!u a) termi)ate a &r!essi)5 bl!( &rematurely. 0*e bl!( stateme)ts a$ter t*e
C<1CS stateme)t are s(i&&e' i$ t*e l!5ial !)'iti!) is not $ul$ille'. 0*e system t*e) !)ti)ues
%it* t*e $irst stateme)t i) t*e )e6t &r!essi)5 bl!(.
Wthn a loop- it *as t*e e$$et t*at t*e )e6t l!!& is &r!esse'.
0*e E:IT stateme)t reats i) t*ree 'i$$ere)t %aysE
.it*i) ea* l!!&- l!!& &r!essi)5 is !m&lete' t! t*e e)'.
Outsi'e !$ t*e l!!&s- but %it*i) t*e $irst e+e)ts liste' !) t*is sli'e- t*e system 'is&lays t*e list
bu$$er %it* t*e urre)t !)te)t. A$ter%ar's- t*e e+e)ts !$ t*e !t*er 5r!u& are tri55ere' a)' t*!se
e+e)ts liste' be$!re START/OF/SELECTION are i)itiate' at t*e LOAD/OF/PROGRAM e+e)t.
At all !t*er &!i)ts- E:IT *as t*e same e$$et as C0ECK.
;si)5 t*e LEA*E PROGRAM !r LEA*E TO TRANSACTION t!'e stateme)ts- y!u a) termi)ate
t*e urre)t &r!5ram.
A$ter a termi)ati!) messa5e- t*e system termi)ates )!t !)ly t*e urre)t &r!5ram- but als! t*e e)tire
program stack.
>C? SAP AG BC400 ##
16.12
SAP AG 2001
The (9SSA9 State%ent0 (essage Classes0 and
(essages
8e$inition
<se
MESSAGE ID 9Kmessa(e $lassL9 TYPE 9Kmessa(e t'peL9
NUMER 9Kmessa(e n)m,e%L9 0
BC400
(essage short te't
040
04+
002
N%essage classO
(essage class:
(essage
The na%e o$ the airline Y+ is Y2
Airline Y+ is not a"ailable
N%essage nu%berO
Attributes (essages
ID 9K ID 9Kmessa(e $lass messa(e $lassL9 L9
NUMER 9K NUMER 9Kmessa(e n)m,e% messa(e n)m,e%L9 L9
Kmessa(e $lassL
Kmessa(e n)m,e%L
Kmessa(e $lassL
Kmessa(e n)m,e%L
0! tri55er a messa5e 'ial!5 i) a &r!5ram- e)ter t*e MESSAGE stateme)t %it* t*e $!ll!%i)5
a''iti!)sE
ID 9Kmessa(e $lassL9 $!r t*e messa5e lass
NUMER 9Kn)m,e%L\ $!r t*e messa5e )umber
0! 'is&lay t*e messa5e te6t $!r a MESSAGE stateme)t i) a &r!5ramIs s!ure !'e- '!uble:li( t*e
messa5e )umber t! 5! t! t*e ass!iate' messa5e lass te6ts.
Ot*er sy)ta6 +aria)ts are a+ailable $!r t*e MESSAGE stateme)t. 9!r m!re i)$!rmati!)- re$er t! t*e
(ey%!r' '!ume)tati!) $!r t*e MESSAGE stateme)t.
>C? SAP AG BC400 #"
16.13
SAP AG 2001
Sel$=9'planatory (essages or (essages &ith 2ong
Te'ts
(essage class BC400
Sel$=e'planatory
8e$inition
Short te't
Nshort te'tO
Nshort te'tO
#u%ber
000
00+
2ong te't
=s#ort te$t>
8iagnosis
Ltext>
Syste% acti"ities
Ltext>
Procedure
Ltext>
Procedure $or syste% ad%inistrator
Ltext>
2ong te't
(essage class:
#u%ber
2
+
: (essage is sel$=e'planatory
There is a long te't
e'plaining the %essage
/$ a messa5e s*!rt te6t !)tai)s all t*e i)$!rmati!) t*e user )ee's- t*e messa5e is 'esribe' as self-
e"planatory.
("ampleE D0*e &r!5ram *as bee) sa+e'.D
Sel$:e6&la)at!ry messa5es are $la55e' as su* i) t*e messa5e lass.
/$ y!u %a)t t! &r!+i'e m!re 'etaile' i)$!rmati!) $!r t*e user- y!u a) '! s! by st!ri)5 a l!)5 te6t
%it* t*e messa5e. /) t*e 7essa'e 7aintenance sree)- t*e &elf2E1planatory $la5 i)'iates %*et*er
!r )!t a messa5e is i)'ee' sel$:e6&la)at!ry. 0! 'is&lay t*e l!)5 te6t- selet t*e messa5e li)e a)'
*!!se +on' Te1t. 0*e system t*e) 'is&lays t*e mai)te)a)e $!rmats. @!u a) 'is&lay t*e $!rmatte'
te6t by *!!si)5 &creen O$tp$t) @!u usually reate t*e l!)5 te6t $r!m a tem&late- %*i* !)tai)s t*e
*ea'i)5s Dia'nosis, &ystem Activities, Proce!$re, a)' Proce!$re for the &ystem A!ministrator) 0*e
system '!es )!t 'is&lay t*e *ea'i)5 t! t*e user i$ t*ere is )! te6t st!re' u)'er it.
>C? SAP AG BC400 #3
16.14
SAP AG 2001
(essages &ith Placeholders
8e$inition
<se
MESSAGE ID 9Kmessa(e $lassL9 TYPE 9Kmessa(e t'peL9
NUMER KnnnL
3ITH Kva%<L Kva%DL Kva%BL Kva%!L 0 3ITH Kva%<L Kva%DL Kva%BL Kva%!L
U< UD UB U!
BC400
(essage short te't
03/
040
04+
(essage class:
(essage
The na%e o$ the airline Y+ is Y2
Airline Y+ is not a"ailable
Attributes (essages
@!u a) i)lu'e u& t! $!ur &lae*!l'ers i) a messa5e >X#- X"- X3 a)' X4?. @!u a) t*e) assi5)
urre)t &arameters t! t*em i) t*e M1SSAG1 stateme)t usi)5 t*e ./0< a''iti!). @!u a) use
literals- te6t symb!ls- !r +ariables. @!u must i)lu'e a s&ae bet%ee) ea* !)e. 0*e urre)t
&arameters are assi5)e' t! t*e &lae*!l'ers X#- X"- X3- a)' X4 i) !r'er.
/) t*e l!)5 te6t- t*e &lae*!l'ers are 5i+e) t*e )ames X7#X- X7"X- X73X- a)' X74X a)'
re&lae' at ru) time i) !r'er- a!r'i)5 t! t*e same l!5i. 0! i)sert a &lae*!l'er i) t*e l!)5 te6tE
Plae y!ur urs!r i) t*e te6t %*ere y!u %a)t t! i)sert t*e &lae*!l'er.
C*!!se E!itE"omman!EInsert comman! . 0*e system 'is&lays a 'ial!5 b!6. /) &ymbols- e)ter
X7#X >!r X7iX i N "- 3 !r 4- as a&&r!&riate?.
C*!!se Enter t! !)$irm t*e 'ial!5 b!6.
>C? SAP AG BC400 #4
16.15
SAP AG 2001
Creating (essage Classes and (essages
4n the 7b6ect #a"igator:
Create using $or&ard na"igation
MESSAGE ID 9Kmessa(e $lassL9 TYPE 9Kmessa(e t'peL9
NUMER 9Kmessa(e n)m,e%L9 0
(essage class a"ailable@
8ouble=click
8ouble=click
Create %essage class
#o
Create %essage
Aes
Kmessa(e $lassL
Kmessa(e n)m,e%L
8e"elop%ent class
DBC400C+2 Create !!!
(essage class Progra%s
!!!
(essage classes
DBC400C(C+2
!!!
Change
8isplay
DBC400C+2
#ote: (essages can
be translated! They
then appear in the
userKs logon language!
0! reate y!ur !%) messa5e lass- 5i+e it a )ame i) t*e ust!mer )ames&ae- t*at is- a )ame
be5i))i)5 %it* @- Y- !r t*e )ames&ae &re$i6.
0! reate a messa5e- assi5) a t*ree:'i5it )umber a)' a messa5e lass t! it.
@!u a) reate b!t* t*e messa5e lass a)' t*e messa5e itsel$ usi)5 $!r%ar' )a+i5ati!) $r!m t*e
MESSAGE stateme)t.
/) t*e ObGet Na+i5at!r- y!u a) reate a)' e'it a messa5e lass i) a)y !$ t*e $!ll!%i)5 %aysE
9r!m t*e !)te6t me)u bel!)5i)5 t! t*e r!!t )!'e i) t*e !bGet list !$ t*e res&eti+e 'e+el!&me)t
lass
9r!m t*e !)te6t me)u bel!)5i)5 t! t*e 7essa'e class )!'e i) t*e !bGet list !$ t*e a&&r!&riate
'e+el!&me)t lass
9r!m t*e Other obect))) i!)
A 'ial!5 b!6 !)tai)i)5 a tab a&&ears. /) t*e Other tab- e)ter a messa5e lass- !r a messa5e %it*
its messa5e lass- a)' t*e) 'is&lay- reate- !r *a)5e it by *!!si)5 t*e a&&r!&riate i!).
>C? SAP AG BC400 #5
16.16
SAP AG 2001
Colors in 2ists +
Flight $ro% to
AA 00+1 #9W A7-E SA# F-A#C4SC7
2: 0400 F-A#EF<-T #9W A7-E
2: 0402 F-A#EF<-T B9-24#

Creation date: 0+>0+>200+
Created by: W4TT(A##
REPORT sap,$!"")44/e?ample/<a0
INCLUDE KLISTL0
:
3RITE: * .a/sp+l#1$a%%#4 COLOR $ol/Me'6
#$on/4ate AS ICON6
W-4T9 Ndata ob6ectO NoptionO !
Colors>4cons>Sy%bols in 2ists
@!u a) set se+eral list 'is&lay attributes %it*i) a WRITE stateme)t. O)e su* attribute is color-
%*i* a) be a'Guste' usi)5 t*e $!rmatti)5 !&ti!) COLOR 2n3% @!u a) *!!se $r!m se+e)
ba(5r!u)' !l!rs t*at are ati+ate' by eit*er a )umeri +alue !r a symb!li )ame.
0 !lUba(5r!u)'Ba(5r!u)'
# !lU*ea'i)5 <ea'ers
" !lU)!rmal 3ist e)tries
3 !lUt!tal 0!tals
4 !lU(eySey !lum)s
5 !lU&!siti+e P!siti+e t*res*!l' +alue
6 !lU)e5ati+e Ne5ati+e t*res*!l' +alue
A !lU5r!u& C!)tr!l le+els
SAP &r!+i'es 5ui'eli)es $!r reati)5 lists i) !l!r. Please !)sult tra)sati!) LIBS $!r e6am&les.
.it* t*e *el& !$ !)e m!re &arameter !$ t*e WRITE stateme)t AS ICON - y!u a) use i!)s i)
y!ur list. 9!r t*is &ur&!se- y!u must i)lu'e t*e /)lu'e L3/S0M stateme)t i) y!ur &r!5ram.
@!u a) $i)' a) !+er+ie% !$ all a+ailable i!)s i) eit*er t*e (ey%!r' '!ume)tati!) u)'er WRITE-
!r i) t*e WRITE stateme)t struture.
>C? SAP AG BC400 #6
16.17
SAP AG 2001
PO

PAI

CALL SCREEN <""


+00 PO

PAI

Screen a!!r"bu!es
Screen nu%ber +00
#e't screen +00
Screen a!!r"bu!es
Screen nu%ber 200
#e't screen 200
200
0
200
0
8yna%ic Screen Se5uence
@!u a) use t*is te*)iBue t! &r!5ram lusters !$ sree)s %it* !m&liate' li)(s %it*!ut *a+i)5 t!
!)ti)ually retur) t! t*e s!ure !'e a)' all t*em usi)5 CA33 SCR11N.
>C? SAP AG BC400 #A
16.18
SAP AG 2001
9'ceptions $or Function (odules
Function %odule 9dit oto <tilities 9n"iron%ent Syste% :elp
2&nction B&i%/er( 'isp%ay BC402124''17ET12REE1SEATS
Function 2odule BC402_F!!_%&$_F'&&_S&#$S Active
tables Changing 1xport
Function 2odule docu2entation
I2port Attributes
1xception Short text
Freight carrier
Source code 1xceptions
")#S1ATS
overboo.ed )=1%L)AD
RAISE 2e1.ep#"on30
222 .#t& 4e+a)lt messa(e:
MESSAGE 29"nd32n-m3A2"d3C
RAISING 2e1.ep#"on30
no data D8#FAIL*%1
@!u a) *a+e a $u)ti!) m!'ule tri55er a %ase ("ceptons.
9!r t*is &ur&!se- y!u must $irst defne e6e&ti!)s i) t*e i)ter$ae 'e$i)iti!)- t*at is- y!u must
'e$i)e 'isti)5uis*able dentfers $!r y!ur e6e&ti!)s.
/) t*e s!ure !'e- y!u &r!5ram t*e trggerng !$ a) e6e&ti!) u)'er t*e reBuire'
!)'iti!)s. At ru)time- t*e $u)ti!) m!'ule e6euti!) is i)terru&te' i$ a) e6e&ti!) *as
bee) tri55ere'. C*a)5es t! E1po# a)' C(an'"n' &arameters *a+e t*e same e$$et as
%it* subr!uti)e alls. 0*ere are t%! stateme)t +aria)ts. <ere- e6e&ti!) sta)'s $!r
a) e6e&ti!) y!u *a+e 'elare'- t*at is- $!r t*e dentfer. De&e)'i)5 u&!) %*et*er t*e e6e&ti!)
is arrie' !ut %*e) t*e $u)ti!) m!'ule is alle'- t*e stateme)ts a) *a+e 'i$$ere)t e$$ets.
RAISE 2e1.ep#"on3
/$ t*e e6e&ti!) is e6eute' i) t*e alli)5 &r!5ram- !)tr!l is &asse' ba( t! t*e same. Ot*er%ise a
ru)time err!r !urs.
MESSAGE 29"nd32n-m3A2"d3C RAISING 2e1.ep#"on3
/$ t*e e6e&ti!) is liste' i) t*e alli)5 &r!5ram- t*is stateme)t !rres&!)'s t! t*e $irst +aria)t. /$ t*e
e6e&ti!) is )!t e6eute'- t*e system 'is&lays a messa5e n-m !$ messa5e lass "d %it* be*a+i!r
9"nd% 0*ere$!re- a ru)time err!r '!es not !ur i) t*is situati!).
>C? SAP AG BC400 #8
16.19
SAP AG 2001
2ogical 8atabases
Progra% Types
Progra% Types
8ata Types0 8ata 7b6ects0 and State%ents
8ata Types0 8ata 7b6ects0 and State%ents
2ogical 8atabases
2ogical 8atabases
Pre"ie&
Pre"ie&
>C? SAP AG BC400 #8
16.20
SAP AG 2001
SPF24
9'a%ple: 2ogical 8atabase F+S
SF24:T
SB77E
-eading 2ogically 8ependent 8ata
@!u a) use easy:t!:use rea' &r!5rams >l!5ial 'atabases? t! rea' l!5ially !))ete' 'ata. 1a*
l!5ial 'atabase *as a struture !)tai)i)5 a *ierar*y !$ t*!se tables a)' +ie%s t*at are t! be rea'.
@!u a) atta* e6atly one l!5ial 'atabase t! ea* ty&e # &r!5ram. 0*e l!5ial 'atabase t*e)
su&&lies y!ur &r!5ram %it* e)tries $r!m tables a)' +ie%s. 0*is mea)s t*at y!u )ee' t! &r!5ram t*e
'ata &r!essi)5 stateme)ts !)ly.
>C? SAP AG BC400 "0
16.21
SAP AG 2001
Aou can attach a logical database to each type + progra%
using the progra% attributes!
Special e"ent blocks are also a"ailable $or processing
indi"idual records!
Aou can attach a logical database to each type + progra%
using the progra% attributes!
Special e"ent blocks are also a"ailable $or processing
indi"idual records!
2ogical 8atabases
Special data collection progra%s deli"ered by SAP
Pro"ide your progra% &ith data in a hierarchically logical
se5uence
Contain data base accesses that ha"e been opti%i;ed $or
per$or%ance
Supply a dyna%ic selection screen
Contain all necessary authori;ation checks
1a* l!5ial 'atabase is a) e)a&sulate' 'ata !lleti!) &r!5ram $!r $reBue)t 'atabase aess.
Database aess *as bee) !&timiCe' usi)5 O&e) S43.
/$ y!u are %!r(i)5 %it* a l!5ial 'atabase- y!u '! )!t )ee' a seleti!) sree) $!r user e)try- beause
it is reate' aut!matially.
0*e system &er$!rms aut*!riCati!) *e(s a!r'i)5 t! t*e SAP aut*!riCati!) !)e&t.
>C? SAP AG BC400 "#
16.22
SAP AG 2001
Progra%
NODES s+l#(&t0
GET s+l#(&t 000
:
SPF24
SF24:T
SB77E
8ata $ro%
the 28B
Controlling an 28B $ro% Within a Progra%
0*e NODES Kno4eL stateme)t &er$!rms t%! $u)ti!)sE
/t 'e$i)es a 'ata !bGet >a struture? as a table %!r( area t*at *as t*e same struture as t*e 'atabase
table. 0*is struture is t*e) $ille' at ru) time %it* all t*e 'ata re!r's t*at t*e l!5ial 'atabase *as
rea' $r!m t*e 'atabase a)' ma'e a+ailable t! t*e &r!5ram.
/t !)tr!ls t*e e6eutability !$ t*e seleti!) sree). 0*e seleti!) sree) %as 'e$i)e' i) t*e l!5ial
'atabase s*!ul' !)tai) !)ly t*!se (ey i)$!rmati!) i)&ut $iel's t*at t*e &r!5ram )ee's. 0*e
NODES stateme)t all!%s y!u t! e)sure t*at !)ly i)$!rmati!) $r!m rele+a)t tables is a+ailable t!
t*e l!5ial 'atabase.
3!5ial 'atabases rea' a!r'i)5 t! t*eir struture- t*at is- $r!m t!& t! b!tt!m. 0*e depth !$ 'ata
rea' 'e&e)'s !) a &r!5ramIs GET stateme)ts. 0*e 'ee&est G10 stateme)t $r!m t*e strutural +ie% !$
t*e l!5ial 'atabase 'etermi)es t*e le+el.
>C? SAP AG BC400 ""
16.23
SAP AG 2001
Progra%
ABAP
runti%e
syste%
START1OF1SELECTION0
Basic list
GET sp+l#0
GET s+l#(&t0
END1OF1SELECTION0
NODES: SPFLI6
SFLIGHT0
2ogical
database
SPF24
SF24:T
SB77E
9"ent Blocks in 2ogical 8atabases
@!u a) i)lu'e a l!5ial 'atabase i) e+ery e6eutable &r!5ram >ty&e #? usi)5 t*e &r!5ram
attributes.
1a* )!'e i) t*e *ierar*y !$ t*e l!5ial 'atabase als! &r!+i'es y!u %it* a G10 e+e)t bl!( i)
a''iti!) t! t*e !t*er e+e)t bl!(s >G10 SP93/- G10 S93/G<0- a)' G10 SBOOS i) t*e e6am&le i)
t*e 5ra&*i?.
@!u a) &r!5ram i)'i+i'ual re!r' &r!essi)5 usi)5 t*ese G10 e+e)t bl!(s.
At ru) time- t*e e+e)t bl!(s t*at reate lists are &r!esse' i) t*e $!ll!%i)5 !r'erE
S0AR0:O9:S131C0/ON.
G10 SP93/ a)' G10 S93/G<0 are alle' se+eral times i) )este' S131C0 l!5i a!r'i)5 t! t*e
struture !$ t*e l!5ial 'atabase.
1ND:O9:S131C0/ON is alle' a$ter all G10 e+e)ts- a)' imme'iately be$!re t*e list is se)t t! t*e
&rese)tati!) ser+er
>C? SAP AG BC400 "3
16.24
SAP AG 2001
STA-T=7F=S929CT47#
9T SPF24
9T SF24:T
9T SF24:T
9T SPF24 2AT9
9T SPF24
9#8=7F=S929CT47#
82 +*//
2)!0H!+//H
21!0/!+//H
82 +/H4
9T SF24:T
9T SF24:T
9T SPF24 2AT9
2)!0H!+//H
21!0/!+//H
9T SF24:T 2/!0/!+//H
REPORT ,$!""4/lo(#$al/4ata,ase0
NODES: sp+l#6 s+l#(&t0
START1OF1SELECTION0
3RITE: * 9START1OF1SELECTION9
$olo% B0
GET sp+l# FIELDS $a%%#4 $onn#40
3RITE: * 9GET SPFLI9 $olo% <6
sp+l#1$a%%#46
sp+l#1$onn#40
GET s+l#(&t FIELDS +l4ate0
3RITE: * 9GET SFLIGHT9 $olo% D6
s+l#(&t1+l4ate0
GET sp+l# LATE0
3RITE :* 9GET SPFLI LATE90
END1OF1SELECTION0
3RITE: 9END1OF1SELECTION9
$olo% B0
Synta' 9'a%ple: 9"ent Se5uence
9T sp$li
9T s$light
9T sp$li 2AT9!
At ru) time- t*e e+e)t bl!(s t*at reate lists are &r!esse' i) t*e $!ll!%i)5 !r'erE
S0AR0:O9:S131C0/ON.
G10 s&$liE 0*e $irst 'ata re!r' $r!m 'atabase table SP93/ t*at !rres&!)'s t! t*e seleti!)
riteria is &lae' i) %!r( area s&$li a)' t*e e+e)t bl!( is &r!esse'.
G10 s$li5*tE 0*e $irst 'ata re!r' $r!m S93/G<0 t*at !rres&!)'s t! t*e seleti!) riteria as %ell
as t! t*e (ey !$ t*e urre)t SP93/ re!r' are &lae' i) %!r( area s$li5*t a)' t*e e+e)t bl!( is
&r!esse'.
G10 s$li5*tE 0*e )e6t 'ata re!r' $r!m 'atabase table S93/G<0 is &lae' i)t! %!r( area s$li5*t
a)' t*e e+e)t bl!( is &r!esse' a5ai).
G10 s$li5*tE 0*is is alle' a5ai) u)til )! $urt*er !rres&!)'i)5 'ata re!r's are $!u)'.
G10 s&$li 3A01 is alle' be$!re t*e )e6t 'ata re!r' $r!m SP93/ is &lae' i)t! %!r( area s&$li.
G10 s&$liE 0*e l!5ial 'atabase &laes t*e )e6t !rres&!)'i)5 'ata re!r' $r!m SP93/ i) %!r(
area s&$li.
1ND:O9:S131C0/ON is alle' imme'iately be$!re t*e list is 'is&laye'.
>C? SAP AG BC400 "4
16.25
SAP AG 2001
ABAP: ABAP: Progra% attributes Progra% attributes
2ogical 8atabase
Application S
F+S
Type +
NODES :sp+l#6 s+l#(&t0
START1OF1SELECTION0
3RITE: * 9START1OF1SELECTION9
$olo% B0
GET sp+l# FIELDS $a%%#4 $onn#40
3RITE: * 9GET SPFLI9 $olo% <6
sp+l#1$a%%#46
sp+l#1$onn#40
GET s+l#(&t FIELDS +l4ate0
3RITE: * 9GET SFLIGHT9 $olo% D6
s+l#(&t1+l4ate0
GET sp+l# LATE0
3RITE :* 9GET SPFLI LATE90
END1OF1SELECTION0
3RITE: 9END1OF1SELECTION9
$olo% B0
SPF24 SPF24
SF24:T SF24:T
SB77E SB77E
Attributes
Su%%ary
GET sp+l#
GET s+l#(&t
GET sp+l# LATE0
#789S
3!5ial 'atabases are i)lu'e' i) ty&e # &r!5rams as &r!5ram attributes. O)ly !)e l!5ial 'atabase
a) be use' $!r ea* &r!5ram.
@!u a) su&&ly a l!5ial 'atabase %it* t*e i)$!rmati!) re5ar'i)5 %*i* $iel's y!u )ee' $r!m t*e
'atabase usi)5 t*e G10 a''iti!) 9/13DS. /$ t*e l!5ial 'atabase su&&!rts t*is ati!)- it %ill rea'
$r!m t*e 'atabase !)ly t*!se $iel's y!u reBuire.
/$- $!r y!ur list- y!u )ee' 'atabase table 'ata t*at is )!t su&&lie' by y!ur l!5ial 'atabase- y!u a)
&r!5ram a)y a''iti!)al 'atabase aess )ee'e' usi)5 S131C0.
>C? SAP AG BC400 "5
16.26
SAP AG 2001
Pre"ie&
Progra% Types
Progra% Types
8ata Types0 8ata 7b6ects0 and State%ents
8ata Types0 8ata 7b6ects0 and State%ents
2ogical 8atabases
2ogical 8atabases
Pre"ie&
Pre"ie&
>C? SAP AG BC400 "6
16.27
SAP AG 2001
Se5uential
Files
SAP
4nter$aces >
Checks






9'ternal
Ser"er
9'ternal 8ata Trans$er 4
.*e) y!u tra)s$er 'ata $r!m a)!t*er SAP !r e6ter)al system t! y!ur !%) SAP system- it is
im&!rta)t t! e)sure 'ata i)te5rity.
0*us- it is )eessary t! subGet t*is ty&e !$ 'ata tra)s$er t! t*e same *e(s as 'ata tra)s$er i) 'ial!5
m!'e.
Si)e 'ial!5 m!'e *e(s i) tra)sati!)s are !m&re*e)si+e a)'- i) &art- '!)e !) a r!ss:a&&liati!)
basis- it is e6tremely 'i$$iult t! &r!5ram t*em y!ursel$.
0*ere$!re- it is mu* easier t! use t*e !)li)e *e(s &r!+i'e' $!r SAP tra)sati!)s beause t*ese
SAP tra)sati!)s are use' als! $!r t*e 'ata tra)s$er.
0*e te*)iBues use' $!r e6ter)al 'ata tra)s$er are alle' batch-nput processes.
SAP !$$ers sta)'ar'iCe' &r!e'ures $!r e6ter)al 'ata tra)s$er $!r ma)y areas %it*i) R/3. 0*ese
&r!e'ures use t*ese &r!5rammi)5 te*)iBuesE bat* i)&ut- all tra)sati!)- a)' 'iret i)&ut. 0*e
SAP sta)'ar' 'ata tra)s$er &r!e'ures are alle' usi)5 t*e 3ata Transfer Workbench >tra)sati!)
S2DA?. /$ )! SAP 'ata tra)s$er &r!e'ures are a+ailable- tra)s$er a) be &r!5ramme' i)'i+i'ually
usi)5 bat* i)&ut !r all tra)sati!).
>C? SAP AG BC400 "A
16.28
SAP AG 2001
Se5uential
$ile
Fueue $ile
SAP
database
Application $unction
Application $unction
Batch input $unction
Batch input $unction
B8C table
B8C B8C table table
BATC: 4#P<T: BATC: 4#P<T:
Se5uential
$ile
SAP
database
Application $unction
Application $unction
B8C table
B8C B8C table table
CA22 T-A#SACT47#: CA22 T-A#SACT47#:
CA22
T-A#SACT47#
Se5uential
$ile
SAP
database
84-9CT 4#P<T: 84-9CT 4#P<T:
SAP
trans$er
progra%
9'ternal 8ata Trans$er 44
>C? SAP AG BC400 "8
16.29
SAP AG 2001
<pdate process
UPDATE UPDATE INSERT INSERT DELETE DELETE
8ialog process
2og 2og
table table
8929T9 re5!
<P8AT9 re5!
4#S9-T re5!
8atabase process
PB7 PA4 PB7 PA4 PA4 PB7
INSERT
ReI)est
UPDATE
ReI)est
DELETE
ReI)est
C7((4T W7-E C7((4T W7-E
<pdate
A)!t*er %ay !$ bu)'li)5 'atabase *a)5es at t*e e)' !$ a) SAP 3;. is t! use t*e u&'ate te*)iBue.
<ere- y!u '! )!t &ass u&'ates 'iretly t! t*e 'atabase- but e)ter t*em as u&'ate reBuests i) a l!5
table i)stea'.
;si)5 t*e ABAP stateme)t COMMIT WORK- y!u e)' SAP 3;. i) 'ial!5 m!'e. 0*e SAP system
t*e) tri55ers a s&eial %!r( &r!ess alle' a) u&'ate %!r( &r!ess t*at- base' u&!) y!ur l!5 e)tries-
e6eutes t*e atual *a)5es t! t*e 'atabase %it*i) a 'atabase tra)sati!). 0*e SAP 3;. e)'s !)ly
%*e) t*e u&'ate &r!ess *as $i)is*e'.
0*e &r!5ram &art i) t*e 'ial!5 a)' u&'ate &r!ess a) ru) eit*er sy)*r!)!usly !r asy)*r!)!usly.
0*e a'+a)ta5e !$ u&'ate i) !)trast t! bu)'li)5 usi)5 subr!uti)es is t*at y!u a) st!re t*e 'ata $!r
t*e 'atabase *a)5e i) t*e l!5 table at a)y time a)' '! )!t *a+e t! (ee& it i) t*e &r!5ram %!r( area.
/ts 'isa'+a)ta5e lies i) t*e e$$!rt reBuire' $!r a''iti!)al l!55i)5.
;se asy)*r!)!us u&'ate %*e) res&!)se times are im&!rta)t a)' t*e 'atabase u&'ates are
!m&liate' e)!u5* t*at t*ey Gusti$y t*e e6tra %!r( i)+!l+e' i) usi)5 t*e l!5 table.
;se sy)*r!)!us u&'ate %*e)e+er y!u )ee' t*e *a)5e' 'ata imme'iately a)' %*e) t*e 'atabase
u&'ates are !m&liate' e)!u5* t! Gusti$y t*e e6tra %!r( i)+!l+e' i) usi)5 t*e l!5 table.
>C? SAP AG BC400 "8

You might also like