Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 & '
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