abap slides basis

29
Computer Science and Manufacturing Business Information Systems A brief introduction to programming for SAP R/3 (ABAP/4) Gerold Kreutler

Upload: parthasc1982

Post on 17-Nov-2014

721 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Abap Slides Basis

Computer Science and Manufacturing

Business Information Systems

A brief introduction to programming for SAP R/3 (ABAP/4)

Gerold Kreutler

Page 2: Abap Slides Basis

Computer Science and Manufacturing 2

Credits

i SAP Online Helphttp://help.sap.com

i SAP Training slides

i SAP lecture notes – Claudia SteinbergerUniversity Klagenfurt

Page 3: Abap Slides Basis

Computer Science and Manufacturing 3

Overview

i R/3 Repositoryi Tools of ABAP Workbenchi Debuggingi ABAP Syntaxi Detailed Example

Page 4: Abap Slides Basis

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

Page 5: Abap Slides Basis

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

. . .

Page 6: Abap Slides Basis

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

Page 7: Abap Slides Basis

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)

Page 8: Abap Slides Basis

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

Page 9: Abap Slides Basis

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

Page 10: Abap Slides Basis

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.

Page 11: Abap Slides Basis

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

Page 12: Abap Slides Basis

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“!

Page 13: Abap Slides Basis

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!

Page 14: Abap Slides Basis

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

Page 15: Abap Slides Basis

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

Page 16: Abap Slides Basis

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:

Page 17: Abap Slides Basis

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

Page 18: Abap Slides Basis

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 )

Page 19: Abap Slides Basis

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

Page 20: Abap Slides Basis

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.

Page 21: Abap Slides Basis

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>.

Page 22: Abap Slides Basis

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:

Page 23: Abap Slides Basis

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

Page 24: Abap Slides Basis

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

Page 25: Abap Slides Basis

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

Page 26: Abap Slides Basis

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

Page 27: Abap Slides Basis

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

Page 28: Abap Slides Basis

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.

Page 29: Abap Slides Basis

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