abap slides basis
TRANSCRIPT
Computer Science and Manufacturing
Business Information Systems
A brief introduction to programming for SAP R/3 (ABAP/4)
Gerold Kreutler
Computer Science and Manufacturing 2
Credits
i SAP Online Helphttp://help.sap.com
i SAP Training slides
i SAP lecture notes – Claudia SteinbergerUniversity Klagenfurt
Computer Science and Manufacturing 3
Overview
i R/3 Repositoryi Tools of ABAP Workbenchi Debuggingi ABAP Syntaxi Detailed Example
Computer Science and Manufacturing 4
R/3 Repository
Presentation -Server-Layer
Application -Server-Layer
Database
ABAP-Program
Repository(all Dev.-Objects)
Customizing -TablesApplication -Tables
client-independent client-dependent
SAP-GUI
Computer Science and Manufacturing 5
Structure of the Repository
Repository -Objects
FI HR
MM
SD
MM
WM
Kunde
M MMM
Development Classes
Function Modules
Programs
Tables
. . .
Computer Science and Manufacturing 6
Repository Infosystem
SAP AG 1999
Repository -InfosystemBusiness EngineeringABAP Dictionary
Basic objsDatabase TablesViewsData ElementsStructuresTable Types
...Other ObjectsFields
ProgrammingFunction BuilderProgram LibraryProg. EnvironmentProgram sub-objects
ABAP ObjectsClass library
Components of classesComponents of interfaces
Envir
TA-Code:SE84
Computer Science and Manufacturing 7
Tools of the ABAP-Workbench
Function BuilderFunction Builder
Screen PainterScreen Painter
ABAPABAP DictionaryDictionaryABAP EditorABAP Editor
ObjectNavigator
Menu PainterMenu Painter
DebuggerDebugger
Class BuilderClass Builder
FI HR
MM
SD
MM
WM
Kunde
•Edit all Repository-Objects separately with its tool OR•Use the Object Navigator (SE80)
Computer Science and Manufacturing 8
Object Navigator
display higher-level object list
Dictionary ObjectsProgramsSAPBC400WBD_GETTING_STASAPBC400WBT_GETTING_STAFunction GroupsBC400Classes/InterfacesCL_BC400
BC400
Development Class
BC400
Navigation-Area
Application HierarchyDevelopment ClassProgramFunction GroupClass/InterfaceInternet ServicesLocal Objects
Navigation in history ofnavigation -area
FavoritsAddEditPrograms
Refresh object list
Double Click at Repository - Objects with own object list: Navigation to selectedobject list
Computer Science and Manufacturing 9
Transaction Codes
SAPSAP EasyEasy AccessAccessFavoritesZERP07_1
ZERP07_1
Context Menu:Execute / Execute in new window Display Documentation Add to Favorites
/nSAPBC400_GS
technicaltransaction code
Context Menu:Execute / Execute in new window Display Documentation
Transaction Code:
Transaction textProgram
ZERP07_1
+ Enter
SAP Menu Use Favorits to store your favorite transaction codes!
Access Programs directly:
Manage transaction codes:transaction SE93
Computer Science and Manufacturing 10
Dynpro Numbers and Field Names
Airline AA American AirlinesUSDID
Name
Currency
Fluggesellschaft
Selection Screen Dynpro List
F1
Technical Info
Field NamesField Types
System
Status
Program NameScreen Number(= Dynpro Number)
Find out what actually is being executed and displayed on the screen:
Once you know Program Names, Screen Numbers or Field Namesyou can use the Object Navigator to access the elements.
Computer Science and Manufacturing 11
Object Navigator: Prog. Analysis
DDIC StructuresSBC400_CARRIERFieldsPA_CARWA_SCARREventsSTART-OF-SELECTIONDynpros01001000
SAPBC400WBT_GETTING_S
Tool-AreaTool-AreaNavigationNavigation-Area-Area
Program objects are displayed inappropriate tools, e.g:• Source: Editor• Dynpro: Screen Painter
Direct Navigation to definitionin Source, displayed with ABAP Editor
Displayed with screen painter
ProgrammSAPBC400WBT_GETTING
- Object Navigator allows you to inspect a program centrally- offers a unique environment for all tools
Computer Science and Manufacturing 12
Debugging (1)
Abap-EditorNavigationNavigation -Area-Area
Program
SAPBC400WBT_GETTING
SAPBC400WBT_GETTING
REPORT sapbc400wbt_getting_started.
TABLES sbc400_carrier.DATA wa_scarr TYPE scarr.PARAMETERS pa_car TYPE scarr-carrid.START-OF-SELECTION.
SELECT SINGLE * FROM scarrINTO CORRESPONDING WHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc4CALL SCREEN 100.MOVE-CORRESPONDING sbc400_ carrier T
WRITE:/ wa_scarr-carrid, wa_scarr-carrname,
STOP
Execute Direct
DebuggingDebugging
1 : using the context menuof program name
2 : Set Break Point and start program
Start program in debugging mode:
Use debugging also to get information about existing code, not only for „debugging“!
Computer Science and Manufacturing 13
Debugging (2)
Switch to debugging mode at runtime:
/h+ Enter
System HelpSystem Help
Tools Debugging DynproDebugging ABAP
2 : Enter /h directly to the command area andconfirm with Enter.
1 : via Menu-Bar: System ->Tools
Allows you to inspect all existing, executable code!
Computer Science and Manufacturing 14
Debugging (3)
X SAP
Watchpoint ABAP Debugger
BIN (1) (000) ds0025 INSo
Variante
aachwschws
Felder
HauptprogrammQuelltext von
ZJJ_KURS_000ZJJ_FORMS
1 4- Variante
SY-SUBRC SY-TABIX SY-DBCNT0 0 1
4
6
SELECT SINGLE * FROM scarrINTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_ carrier .CALL SCREEN 100.MOVE-CORRESPONDING sbc400_ carrier TO wa_scarr .
Festpunktarithmetik15 30- 56Single Step
Debugging Mode of ABAP Editor: Single Steps
Computer Science and Manufacturing 15
Debugging (4)
Debugging Mode of ABAP Editor: Breakpoints
SAP AG 1999
X SAP
Watchpoint ABAP Debugger
BIN (1) (000) ds0025 INSo
Variante
aachwschws
Felder
HauptprogrammQuelltext von
ZJJ_KURS_000ZJJ_FORMS
1 4- Variante
SY-SUBRC SY-TABIX SY-DBCNT0 0 1
4
6
SELECT SINGLE * FROM scarrINTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_ carrier .CALL SCREEN 100.MOVE-CORRESPONDING sbc400_ carrier TO wa_scarr.
Festpunktarithmetik15 30- 56
Cont. to nextbreakpoint
STOP
Computer Science and Manufacturing 16
ABAP Syntax (1)
Parameters/Additions (according tokeywords)
Dot ends eachABAP statement.
ABAP-Keyword:
START-OF-SELECTION .SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car .
IF sy-subrc = 0 .MOVE-CORRESPONDING wa_scarr TO scarr .CALL SCREEN 100 .MOVE-CORRESPONDING scarr TO wa_scarr.
WRITE : wa_scarr-carrid ,wa_scarr-carrname ,wa_scarr-currcode .
ENDIF.
TABLES scarr .DATA wa_scarr TYPE scarr .PARAMETERS pa_car TYPE scarr-carrid .
START-OF-SELECTIONSTART-OF-SELECTIONSELECTSELECT
IFIFMOVE-CORRESPONDINGMOVE-CORRESPONDINGCALLCALLMOVE-CORRESPONDINGMOVE-CORRESPONDING
ENDIFENDIF
TABLESTABLESDATADATAPARAMETERSPARAMETERS
WRITEWRITEChain
,,.
..
..
....
..
..
..
..
..
:
General syntax:
Computer Science and Manufacturing 17
ABAP Syntax (2)
Access online documentation in ABAP editor:
EditorEditor
START-OF-SELECTION.SELECT SINGLE * FROM scarr
INTO wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDINGwa_scarr
TO sbc400_carrier.CALL SCREEN 100.MOVE-CORRESPONDING sbc400_carrier
TO wa_scarr.WRITE: wa_scarr-carrid,
wa_scarr-carrname,wa_scarr-currcode.
ENDIF.
i
ABAP OverviewNew features in ABAPABAP-Keyword:ABAP doc. and examplesOnline Manual
Help
WRITE
WRITEWRITE
Keyword-Documentation-
F1
Computer Science and Manufacturing 18
ABAP Syntax (3): Navigation Help
START-OF-SELECTION.SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_carrier.CALL SCREEN 100.MOVE-CORRESPONDING sbc400_ carrier TO wa_scarr.
WRITE: wa_scarr-carrid,wa_scarr-carrname,wa_scarr-currcode.
ENDIF.
scarrscarrwawa__scarrscarr
double clickdouble click
Definition of database tablein ABAP Dictionary Definition of structure
(of structured field)
double click100100 Definition of Dynpro(in Screen Painter )
Computer Science and Manufacturing 19
ABAP Syntax (4): Comments
START-OF-SELECTION.
SELECT SINGLE * FROM scarrINTO CORRESPONDING FIELDS OFwa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_carrier.CALL SCREEN 100.MOVE-CORRESPONDING sbc400_carrier TO wa_scarr.
WRITE: wa_scarr-carrid,wa_scarr-carrname,wa_scarr-currcode.
ENDIF.
* read dataset from table SCARR* read dataset from table SCARR
"" process Dynpro 100process Dynpro 100
whole lineas comment
rest of line as comment
Computer Science and Manufacturing 20
ABAP Keywords (1)
WRITE <format><value><option>. * write s.th. to report<format>: /p(l) Line Feed, Col-Pos., Length
P number, I integer, F floating point, N num. text, C text, D date (YYYYMMTT)
DATA: NAM1(25) TYPE C VALUE 'SAP', * sample data definitionNAM2 LIKE NAM1,SUM1 TYPE F VALUE '12.3456E2',AMOUNT TYPE P DECIMALS 2 VALUE 1000.
CLEAR <field>. * initialize field
SELECT * FROM <tab>. * select loop* do s.th.
ENDSELECT.
CASE <field>. * case WHEN <value>. * do s.th.
WHEN <value2>.* do s.th.
ENDCASE.
Computer Science and Manufacturing 21
ABAP Keywords (2)
DO <field>. * DO Loop* do s.th., SY-INDEX: current counter
ENDDO.
WHILE <log.expr>. * WHILE* do s.th.
ENDWHILE.
Operators: EQ (equals), NE (not eq.), GT (greater than), GE (greater/equal than),LT, LE; BETWEEN <v1> AND <v2>.
DATA: BEGIN OF <name>, * Records* definition of elements
END OF <name>.
MOVE CORRESPONDING <f1> TO <f2>. * transfers field values – same name!
CALL FUNCTION <name> * function callEXPORTING <list of exp. parameters>IMPORTING <list of imp. parameters>.
Computer Science and Manufacturing 22
ABAP Example (1)
SAP AG 1999
START-OF-SELECTION.SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_carrier.CALL SCREEN 100.MOVE-CORRESPONDING sbc400_ carrier TO wa_scarr.
WRITE: wa_scarr-carrid,wa_scarr-carrname,wa_scarr-currcode.
ENDIF.
TABLES sbc400_carrier.DATA wa_scarr TYPE scarr.PARAMETERS pa_car TYPE scarr-carrid.
1
2
3
4
Definitions:
Source Code:
Computer Science and Manufacturing 23
ABAP Example (2)
SAP AG 1999
TABLES sbc400_carrier.DATA wa_scarr TYPE scarr.PARAMETERS pa_car TYPE scarr-carrid.
TABLESTABLESDATADATAPARAMETERSPARAMETERS
At the generation of the program (function „Activate) a Selection Screen containing a field „pa_carr“ is being generated.
.
Start of program: Creation of Variables, Structures and Selection Screen
Data Objects
ABAP-Program
sbc400_carrier
wa_scarr
pa_car
1
Data Objects and Selection Screens
Computer Science and Manufacturing 24
ABAP Example (3)
Querying data from database
Database-TableSCARR
ABAP-Verarbeitungs-block
ABAP Laufzeitsystem
ABAP-Program
SELECT SINGLE * FROM scarrINTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0....
SELECT SINGLESELECT SINGLE FROMFROM scarrscarr
WHERE CARRID =WHERE CARRID = papa__carcar
Data Objectspapa__carcar
wawa__scarrscarr
2
Computer Science and Manufacturing 25
ABAP Example (4)
Retrieving data from database
2
Database-TableSCARR
ABAP-Verarbeitungs-block
ABAP-Program
Data Objects
SELECT SINGLE * FROM scarrINTO CORRESPONDING FIELDS OFwa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0....
INTO CORRESPONDING FIELDS OFINTO CORRESPONDING FIELDS OF wawa__scarrscarr
papa__carcar
wawa__scarrscarr
Computer Science and Manufacturing 26
ABAP Example (5)
Process Dynpro
ABAP-Runtime System
Time
Data Objects
ABAP- Verarbeitungsblock
ABAP-Program
ProcessBeforeOutput
CALL SCREEN 100.CALL SCREEN 100.
sbc400_sbc400_carriercarrier..
ProcessAfterInput
3 Events:- PBO- PAI
Dynpro: -Screen-Repository-Object
Computer Science and Manufacturing 27
ABAP Example (6)
Create ABAP-List
START-OF-SELECTION.SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_scarrWHERE carrid = pa_car.
IF sy-subrc = 0.MOVE-CORRESPONDING wa_scarr TO sbc400_carrier.CALL SCREEN 100.MOVE-CORRESPONDING sbc400_carrier TO wa_scarr.
WRITE: wa_scarr-carrid,wa_scarr-carrname,wa_scarr-currcode.
ENDIF.
WRITEWRITE4
Keywords for list creation: WRITE, SKIP, ULINE
Computer Science and Manufacturing 28
Syntax Checking, Generation
Syntax Check:Syntax Check: Check the syntax of your program usingthe appropriate icon in ABAP Editor.
Save Program:Save Program: Saving: Code is put into the repositoryand system-wide visible. Only active versions can be started.
Activate Program:Activate Program: After Activating the program is system-widevisible and executable.
Extended Program Check:Extended Program Check: Contains extended programchecks and can only be used with activated programs. Accessible in ABAP editor via Program -> Check -> Extended Check.
Computer Science and Manufacturing 29
Transport of Repository Objects
Change -order
Development System Productive System
FI HR
MM
SD
MM
WM
Kunde
FI HR
MM
SD
MM
WM
Kunde
Usually: Usage of QS-System