Top Banner
ABAP Programming ABAP Programming Overview Overview
72

Abapprogrammingoverview 090715081305-phpapp02

Oct 31, 2014

Download

Education

wingsrai

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Abapprogrammingoverview 090715081305-phpapp02

ABAP ProgrammingABAP Programming OverviewOverview

Page 2: Abapprogrammingoverview 090715081305-phpapp02

ABAP Course Outline Chapter 1 : Introduction to ABAP Chapter 2 : List Processing in ABAP Chapter 3 : Open SQL & Internal Table Chapter 4 : Event-driven Programming & Selection Screen Chapter 5 : Modularization & Catch

Statement Chapter 6 : Message, Debugging, File

Transfer and Type Group

Page 3: Abapprogrammingoverview 090715081305-phpapp02

ABAP Chapter 1 Introduction to SAP Architecture ABAP Overview Data Object in ABAP

Page 4: Abapprogrammingoverview 090715081305-phpapp02

SAP System : 3 Tier Client/ServerSAP System : 3 Tier Client/Server

DB Server

SAP Application Server

SAP GUI Presentation

Server

SAP GUISAP GUI

Page 5: Abapprogrammingoverview 090715081305-phpapp02

SAP SYSTEM (3 Tier Architecture)SAP SYSTEM (3 Tier Architecture)

Presentation Layer

(Windows based)

Application Layer

(Windows Server/UNIX)

Database Server

Database Layer

(Windows Server/UNIX)

M

SAP Instance

Oracle

Informix

DB2

MS SQL Server

MaxDB

G

Dispatcher

RequestQueue

D D B V S E

SAP Buffer(Shared Mem)

SAP GUI SAP GUI

Page 6: Abapprogrammingoverview 090715081305-phpapp02

Dialog Processing

Page 7: Abapprogrammingoverview 090715081305-phpapp02

Database Server

Application Server

Dispatcher

RequestQueue

D D D D…

SAP Buffer

Program

Table

1

3

45

68

9

10

Report zpsm1.

Tables customers.

Select single * from

customers where id = 1.

Write: / customers-name.

Execute ABAP statement

Check Program in Program Buffer

7

Load&Gen Program

SQL Request

Send List

Generate Screen(List)Send Request

Request List

2 Search for free WP

Store request to queue

Send request to WP

SAP GUI

SAP System : Dialog Processing

Page 8: Abapprogrammingoverview 090715081305-phpapp02

TaskHandler

DYNPRO Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List buffer

Database Server

Dialog Work Process

Dialog Work Process Architecture

Result Set Memory

Page 9: Abapprogrammingoverview 090715081305-phpapp02

ABAP Programming Overview

Page 10: Abapprogrammingoverview 090715081305-phpapp02

ABAP Overview

DATA ...DATA ...

WRITE ..WRITE ....

IF ...IF ...MOVE …MOVE …

WHILE...WHILE...

*Comment..*Comment....

SEARCH ...SEARCH ...

SELECT ...SELECT ...

LOOP AT ...LOOP AT ...DO ...DO ...

Page 11: Abapprogrammingoverview 090715081305-phpapp02

ABAPABAP

AAdvanced

BBusiness

AApplication

PProgramming

Page 12: Abapprogrammingoverview 090715081305-phpapp02

ABAP FeatureABAP Feature

Declaring data with various types and structure Operational elements for data manipulation Control elements for controlling the program

flow Event elements for reacting to external events

Page 13: Abapprogrammingoverview 090715081305-phpapp02

ABAP ABAP

Operating/Database system-independent programming

ABAP contains a subset of SQL called Open Open SQLSQL for comfortable database access for various databasevarious database

Page 14: Abapprogrammingoverview 090715081305-phpapp02

ABAP Programming ABAP Programming

ABAP Report Dialog Programming(Transaction)

Page 15: Abapprogrammingoverview 090715081305-phpapp02

ABAP Program : ReportABAP Program : Report

Data

Report Program

: attribute type 1 (executable) Reading

Database

Reading dataReading data

Page 16: Abapprogrammingoverview 090715081305-phpapp02

Types of ABAP Report

1. Report Listing

2. Drill-down Report

3. Control-break Report

4. ALV Report

1

3

4

Page 17: Abapprogrammingoverview 090715081305-phpapp02

ABAP Program : Dialog ProgramABAP Program : Dialog Program

Data

Dialog Program

: attribute type M (Module Pool) Reading

Database

Reading and changing dataReading and changing data

Writing

Page 18: Abapprogrammingoverview 090715081305-phpapp02

Dialog Program : Transaction

Page 19: Abapprogrammingoverview 090715081305-phpapp02

ABAP Programming

Page 20: Abapprogrammingoverview 090715081305-phpapp02

How to create ABAP program

Transaction Code : SE38

Page 21: Abapprogrammingoverview 090715081305-phpapp02

Transaction : SE38

Page 22: Abapprogrammingoverview 090715081305-phpapp02

Program Attribute

Page 23: Abapprogrammingoverview 090715081305-phpapp02

ABAP Editor

Page 24: Abapprogrammingoverview 090715081305-phpapp02

The Structure of the LanguageThe Structure of the Language

Each statement must end with a period

DATA tmp TYPE I.

WRITE ‘Hello World’. WRITE ‘OK’.

Page 25: Abapprogrammingoverview 090715081305-phpapp02

LiteralLiteral

DATA tmp TYPE I.

WRITE ‘Hello World’.

WRITE ’10’.

MOVE 9 TO tmp.

Text Literal

Numeric Literal

Text Literal

Page 26: Abapprogrammingoverview 090715081305-phpapp02

Chained Statements Successive statements that have the same

string segment can be combined to form a single chained statement

To do so, you specify the identical starting segment once and conclude it with a colon (:), the remaining segments are then listed, separated by commas (,) and concluded with a period (.)

At runtime, a chained statement is treated like an equivalent sequence of individual ABAP statements

Page 27: Abapprogrammingoverview 090715081305-phpapp02

Chained StatementsChained Statements

WRITE‘HelloWorld’. WRITE ‘OK’.

= WRITE: ‘Hello World’, ‘OK’.

DATAtmp1 TYPE I . tt tt ttt t t t2

= 1DATA: tmp TYPE I,

2tmp TYPE C.

Page 28: Abapprogrammingoverview 090715081305-phpapp02

Chained StatementChained Statement

MOVE sy-subrc TO tmp1.MOVE sy-subrc TO tmp2.MOVE sy-subrc TO tmp3. =MOVE sy-subrc TO: tmp1, tmp2, tmp3.

Page 29: Abapprogrammingoverview 090715081305-phpapp02

Chained StatementChained Statement

PERFORM cal_1 USING a1 a2.PERFORM cal_1 USING a3 a4. =PERFORM cal_1 USING: a1 a2, a3 a4.

Page 30: Abapprogrammingoverview 090715081305-phpapp02

CommentsComments

* This is full line comment WRITE ‘Hello World’. “ Write data (partial line comment) WRITE ‘Test’.

Page 31: Abapprogrammingoverview 090715081305-phpapp02

ABAP Command : Case SensitivityABAP Command : Case Sensitivity

WRITE ‘Hello World’. WriTe ‘Hello World’. wRiTE ‘Hello World’.

ABAP command is not case sensitive

Page 32: Abapprogrammingoverview 090715081305-phpapp02

Data Objects in ABAP

Page 33: Abapprogrammingoverview 090715081305-phpapp02

Data Objects in ABAPData Objects in ABAP

Memory Space

Structure

Table Structure Internal Table

Variable

Constants<Field-symbols>

Page 34: Abapprogrammingoverview 090715081305-phpapp02

Variable

Page 35: Abapprogrammingoverview 090715081305-phpapp02

VariableVariable

Variables can be declared at any point in a program

Variables can be up to 30 characters in length

REPORT ZTEST.DATA firstname TYPE STRING.firstname = ‘John’.

Page 36: Abapprogrammingoverview 090715081305-phpapp02

Predefined ABAP Data TypesPredefined ABAP Data Types

Type Description Initial Value

C

D

F

I

N

P

T

X

String

xstring

Character

Date

Floating Point

Integer

Numeric Text

Packed Decimal

Time

Hexadecimal

Variable-length

Variable-length Hexadecimal

Space

‘00000000’

00. 0‘0

0‘000000’

’00’

Space

Blank string

Length1 – 65535

8 characters

8 bytes

4 bytes

1 – 65535

1 – 16 bytes

6 characters

1 – 65535

Variable

Variable

Page 37: Abapprogrammingoverview 090715081305-phpapp02

Defining Variable with DATA StatementDefining Variable with DATA Statement

* SyntaxDATA var[(length)] [Type type] [Decimals number].

DATA var LIKE Table-Field [VALUE initial value].

Page 38: Abapprogrammingoverview 090715081305-phpapp02

Defining Variable with DATA StatementDefining Variable with DATA Statement

* Data Declaration 10DATA: tmp( ) TYPE C,

1tmp TYPE I, 2 8 2 1 50tmp ( ) TYPE P DECIMALS VALUE ‘ . ’.

3 5DATA: tmp ( ) TYPE N, 4tmp .

Page 39: Abapprogrammingoverview 090715081305-phpapp02

Defining Variable with DATA StatementDefining Variable with DATA Statement

* Data Declaration -DATA customerno LIKE customers id.

DATA matnr tttt mara-matnr.

DATA customerno TYPE customers-id.DATA matnr TYPE mara-matnr.

Page 40: Abapprogrammingoverview 090715081305-phpapp02

ABAP Predefined Data Types

ABAP Predefined Data Types

Complete Types(I,F,D,T,STRING and XSTRING)

Incomplete Types(C,N,P and X)

Page 41: Abapprogrammingoverview 090715081305-phpapp02

Variable

Data Type C,N and X length between 1 – 65535 (Default 1)

Data Type P length between 1 – 16 (Default 8) and decimals length between 0 – 31

Data Type I value between – 231 to 231 – 1 or –2,147,483,648 to 2,147,483,647

DATA tmp(10) TYPE C.

DATA tmp(5) TYPE P DECIMALS 2.

DATA tmp TYPE I.tmp = 1000000.

Page 42: Abapprogrammingoverview 090715081305-phpapp02

Data type N

data tmp(5) type N.tmp = ‘Xca9yy23K6’.

Page 43: Abapprogrammingoverview 090715081305-phpapp02

ABAP Error

ABAP Error

Syntax Error

Runtime Error

System RuntimeError

User RuntimeError

Time Exceed(10 Minutes)

Cannot AllocateSpace

Page 44: Abapprogrammingoverview 090715081305-phpapp02

User Runtime Error

DATA result TYPE i.result = 10 / 0.

Page 45: Abapprogrammingoverview 090715081305-phpapp02

System Runtime Error : Space Allocation

Page 46: Abapprogrammingoverview 090715081305-phpapp02

System Runtime Error : Time Exceed

Page 47: Abapprogrammingoverview 090715081305-phpapp02

Non-elementary TypeNon-elementary Type

* Data DeclarationTYPES tname(30) TYPE c.DATA: customer_name TYPE tname, firstname TYPE tname.

Page 48: Abapprogrammingoverview 090715081305-phpapp02

Value AssignmentValue Assignment

* Value assignment 1 30DATA: name ( ),

ttt t _ I , next_num TYPE I.

MOVE ‘XXXX’ TO name1. 5MOVE TO first_num.

5COMPUTE next_num = first_num + . 1name = ‘SAP’.

1ADD TO next_num.

Page 49: Abapprogrammingoverview 090715081305-phpapp02

Value AssignmentValue Assignment

* Value assignment DATA: tmp1 TYPE t,

tmp2 TYPE t.tmp1 = tmp2 = 10.

Page 50: Abapprogrammingoverview 090715081305-phpapp02

ABAP Practice

ต้�องการให้�สร�างต้�วแปรชื่��อ firstname และ lastname โดยให้�ค่�าชื่��อของค่�ณก�บต้�วแปร firstname และนามสก�ลของค่�ณให้�ก�บต้�วแปร lastname พร�อมทั้�$งแสดงค่�าข�อม%ล firstname ก�บ lastname ออกมาทั้&�ห้น�าจอ

Page 51: Abapprogrammingoverview 090715081305-phpapp02

Structure

Page 52: Abapprogrammingoverview 090715081305-phpapp02

StructureStructure

* SyntaxDATA BEGIN OF <structure name>.DATA field1. DATA field2.

……

DATA END OF <structure name>.

Page 53: Abapprogrammingoverview 090715081305-phpapp02

StructureStructure

* SyntaxDATA BEGIN OF wa.DATA id LIKE customers-id. DATA name LIKE customers-name.DATA city LIKE customers-city. DATA END OF wa.MOVE 9 TO wa-id.WRITE wa-id.

id city

wa

0000000

0

name

Page 54: Abapprogrammingoverview 090715081305-phpapp02

Defining Structure (Include Structure)Defining Structure (Include Structure)

* Include StructureDATA BEGIN OF wa. INCLUDE STRUCTURE customers.DATA tel(7).DATA END OF wa.

Page 55: Abapprogrammingoverview 090715081305-phpapp02

Defining StructureDefining Structure

* LIKE optionDATA wa LIKE customers.wa-id = 1.wa-name = ‘John’.WRITE: wa-id, wa-name.

Page 56: Abapprogrammingoverview 090715081305-phpapp02

ABAP Practice

ต้�องการให้�สร�าง Structure ชื่��อ myname โดยม&ฟิ)ลด* firstname และ lastname โดยให้�ค่�าชื่��อของค่�ณก�บฟิ)ลด* firstname และนามสก�ลของค่�ณให้�ก�บฟิ)ลด* lastname พร�อมทั้�$งแสดงค่�าข�อม%ลของ Structure ทั้&�ชื่��อ myname ทั้�$งฟิ)ลด* firstname และ lastname ออกมาทั้&�ห้น�าจอ

Page 57: Abapprogrammingoverview 090715081305-phpapp02

Constants

Page 58: Abapprogrammingoverview 090715081305-phpapp02

ConstantsConstants

* Constant variableCONSTANTS max_no TYPE I VALUE 999. DATA counter TYPE I VALUE max_no.WRITE: max_no, counter.

Page 59: Abapprogrammingoverview 090715081305-phpapp02

Constants Using ExampleConstants Using Example

* Constant variableCONSTANTS ctext(11) TYPE C VALUE ‘Hello World’. WRITE ctext.WRITE ctext.WRITE ctext.WRITE ctext.WRITE ctext.

Page 60: Abapprogrammingoverview 090715081305-phpapp02

System Fields The system fields (structure syst) are

filled by the runtime environment. You can use them to query the system status in an ABAP program

You should access them only for reading sy-datum = Current date of application

server sy-uzeit = Current time of application server sy-datlo = Current date of SAP GUI sy-timlo = Current time of SAP GUI sy-mandt = Current client logon sy-subrc = Return value of ABAP statement

syst-datum

Page 61: Abapprogrammingoverview 090715081305-phpapp02

ABAP System Fields : Structure SYST (SE11)

Page 62: Abapprogrammingoverview 090715081305-phpapp02

DATEDATE

* 8Fixed Length * Include Representation ‘tttttttt’

DATA today TYPE D. -today = sy datum.

WRITE today. 19991231today = ‘ ’. WRITE today.

Page 63: Abapprogrammingoverview 090715081305-phpapp02

TIMETIME

* Fixed Length 6* Format ‘HHMMSS’DATA times TYPE T.times = sy-uzeit.WRITE times.

HHMMSS

Page 64: Abapprogrammingoverview 090715081305-phpapp02

MOVE StatementMOVE Statement

DATA wa LIKE customers. DATA vender LIKE customers.

wa- id = ‘1234’.wa- #1name = ‘Test ’.tttt wa TO vender.

WRITE: wa- -id, vender name.

“vender = wa.

Page 65: Abapprogrammingoverview 090715081305-phpapp02

MOVE-CORRESPONDING StatementMOVE-CORRESPONDING Statement

DATA: begin of wa1, f1,f2,f4, end of wa1.DATA: begin of wa2, f2,f1,f3, end of wa2.…MOVE-CORRESPONDING wa1 TO wa2.

WRITE: wa1-f1,wa2-f1 .

Page 66: Abapprogrammingoverview 090715081305-phpapp02

Field-symbols

Page 67: Abapprogrammingoverview 090715081305-phpapp02

Field-symbolsField-symbols

ttttt name (4) Value ‘Test’, 10num Type I Value , 19980429today Type D Value ‘ ’.

- Field symbols <temp>. Assign name To <temp>. Write <temp>.

Assign num To <temp>. Write <temp>.

Assign today To <temp>. Write <temp>.

Page 68: Abapprogrammingoverview 090715081305-phpapp02

Field-symbols : UNASSIGNField-symbols : UNASSIGN

ttttt name (4) Value ‘Test’,f - ield symbols <temp>.tttttt name To <temp>.w rite <temp>.una ssign <temp>.

Page 69: Abapprogrammingoverview 090715081305-phpapp02

CLEAR StatementCLEAR Statement

Example:

DATA tmp type i value 9.tmp = 10.CLEAR tmp.

“ Clear statement sets a field to an initial value appropriate for its type” CLEAR <data object>.

Page 70: Abapprogrammingoverview 090715081305-phpapp02

CLEAR StructureCLEAR Structure

DATA wa like customers.…CLEAR wa.

Page 71: Abapprogrammingoverview 090715081305-phpapp02

ABAP Report : Program Structure

Report ztest.*Data objects declarationdata ...data begin of ...*Program Logic(Data objects

processing)…write ….

Page 72: Abapprogrammingoverview 090715081305-phpapp02

ABAP Practice