0% found this document useful (0 votes)
46 views

ABAP Programming

The document provides an overview of ABAP programming including details about the ABAP editor, data types, variables, conditional and loop statements in ABAP. It describes key features and functionalities of the ABAP editor including saving, syntax checking, executing programs. It also explains different categories of data types used in ABAP like elementary, complex and reference data types.

Uploaded by

Lyrical heaven
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

ABAP Programming

The document provides an overview of ABAP programming including details about the ABAP editor, data types, variables, conditional and loop statements in ABAP. It describes key features and functionalities of the ABAP editor including saving, syntax checking, executing programs. It also explains different categories of data types used in ABAP like elementary, complex and reference data types.

Uploaded by

Lyrical heaven
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 90

ABAP Programming

1
Introduction to ABAP Editor

▪ ABAP editor is a tool for ABAP coding.

▪ It is one of the main tool of the ABAP workbench.

▪ The transaction code for ABAP editor is SE38.

▪ Any customized program must start with Z or Y as first alphabet.

▪ A statement is a sequence of words that ends with a period.

▪ In the ABAP editor, the keywords appear in blue color.

2
Functionalities of ABAP Editor

▪ Save - Ctrl + S

▪ Syntax check - Ctrl + F2

▪ Activation - Ctrl + F3

▪ Execute - F8

▪ Display/change - Ctrl+ F1

▪ Display object list - Ctrl + Shift + F5

3
Functionalities of ABAP Editor - Pretty Printer

▪ The use of pretty printer is used to format the ABAP code. It makes the code more

readable.

▪ The shortcut of pretty printer is Shift + F1.

▪ The various functionalities of pretty printer are as follows:

 Indentation

 Convert uppercase/lowercase

4
Functionalities of ABAP Editor - Comments

▪ A comment is an explanation that is added to the source code of a program to help the

person reading the program to understand it.

▪ Comments are ignored when the program is generated by the ABAP compiler.

▪ The * character at the start of a program line indicates that the entire line is a comment.

▪ The " character, which can be entered at any position in the line, indicates that the

remaining content in the line is a comment.

5
Functionalities of ABAP Editor - Comments(Contd.)

▪ Shortcut to comment out lines - Ctrl + ,

▪ Shortcut to uncomment lines - Ctrl + .

6
Data Types

▪ Data types are templates for creating data objects.

▪ A data type defines the technical attributes of data objects.

▪ Data types do not use any memory space.

▪ Data types can be defined independently in the ABAP program or in ABAP dictionary.

7
Data Objects

▪ A data object is an instance of a data type.

▪ A data object holds the contents or data.

▪ It occupies the memory space based upon the data type specified.

▪ Example - DATA lv_empid(20) TYPE n.

lv_empid = 10.

▪ In the above example, DATA = keyword , lv_empid is the name of the data object,

TYPE = keyword , n(numeric) = is a data type of that data object.


8
Categories of Data Types
Categories of Data Types

▪ There are three categories of data types.

1. Elementary types

2. Complex types

3. Reference types

9
Elementary Types

▪ They are predefined data types.

▪ They are single data types. They are not composed of other data types.

▪ Elementary datatypes are of 2 types:

1. Fixed length data types - C(character) , N(numeric) , I(Integer) , P(packed number) ,

F(floating point) , D(date), T(time) , X(hexadecimal).

2. Variable length data types - String , Xstring.

1
0
Complex Data Types

▪ There is no pre-defined complex data type in ABAP.

▪ They are the combination of elementary data types.

▪ There are 2 types of complex data types.

1. Structure type

2. Table type

1
1
Reference Data Types

▪ There is no pre-defined reference data type.

▪ It describes data objects that contain references to other objects.

▪ They are of 2 types of reference data type.

1. Data reference

2. Object reference

1
2
Reference Data Types(Contd.)

▪ Example : DATA lo_object TYPE REF TO zclass.

▪ In the above syntax - DATA = keyword , lo_object = name of data object, TYPE REF TO =

keyword , zclass = name of already existing class.

1
3
Types of Data Objects

▪ The Data objects are of 2 types.

1. Literals(unnamed data objects)

2. Named data objects

1
4
Literals(Unnamed Data Objects)

▪ Literals don’t have any name that’s why they are called as unnamed data objects.

▪ The are fully defined by their value.

▪ There are 2 types of literals.

1. Numeric literals - Numeric literals have sequence of numbers. Examples - 123 , -4567

etc.

2. Character literals - Character literals are sequences of alphanumeric characters in single

quotation marks. Examples - ‘Test 123’ , ‘SAP ABAP’ etc.


1
5
Named Data Objects

▪ Data objects that have a name are called as named data objects.

▪ The various types of named data objects are as follows :

1. Variables

2. Constants

3. Text symbols

1
6
Variables

▪ Variables are data objects whose contents can be changed.

▪ Variables are declared using the DATA, CLASS-DATA, STATICS, PARAMETERS, SELECT-

OPTIONS, and RANGES keyword.

▪ Example - DATA lv_empid(20) TYPE n.

lv_empid = 10.

lv_empid = 20.

1
7
Constants

▪ Constants are data objects whose contents can not be changed.

▪ Constants are declared using the CONSTANTS keyword.

▪ Example - CONSTANTS lc_pi TYPE P DECIMALS 3 VALUE ‘3.141’.

1
8
Text Symbols

▪ A text symbol is a data object that is not declared in the program itself.

▪ It is defined as a part of the text elements of the program.

1
9
Write Statement

▪ The basic ABAP statement for displaying data on the screen is write.

▪ Example - Data: number TYPE I VALUE 1,

name(25) TYPE c VALUE 'Leena’.

WRITE: 'The Number is ‘, number.

WRITE: / 'The Name is ', name.

▪ We can use ‘ /’ in write statement to denotes a new line.

2
0
Chain Operator

▪ The chain operator is ‘:’.

▪ It is used to combine the statements.

▪ Statement sequence - WRITE var1.

WRITE var2.

WRITE var3.

▪ CHAIN statement : WRITE : var1 , var2 , var3.

2
1
Conditional Statements

▪ Conditional statements allows us to execute a block of code if a certain condition is met.

▪ The various conditional statements are as follows:

 IF statement

 CASE statement

2
2
IF Statement

Various options of IF Statement


▪ It is a conditional statement.

▪ Every if statement ends with endif.

▪ We provide multiple conditions using elseif.

▪ Multiple statements blocks are there,

depends upon the condition one block executes.

▪ If none of the If and elseif conditions

are satisfied, it goes to else part.


2
3
CASE Statement

CASE Statement
▪ It is a conditional statement.

▪ Every case statement ends with endcase.

▪ Multiple statements blocks are there,

depends upon the condition one block

executes.

▪ If none of the conditions are satisfied,

it goes to others part.


2
4
Difference between Case & IF

▪ If we have multiple IF conditions , IF check all the conditions, until it gets a true

condition whereas in CASE , it directly jumps to the true condition.

▪ Case is performance effective as compared to IF.

2
5
Loop

▪ Loop allows us to execute a group of statements multiple times.

▪ The various loops are as follows:

 Do loop

 While loop.

 Loop at <itab> where itab stands for Internal table.

2
6
Do Loop

▪ Do loop is called as a unconditional loop.

▪ Every do loop ends with enddo.

▪ Syntax : Do <n> TIMES.

<statement block>.

ENDDO.

2
7
While Loop

▪ While loop is called as a conditional loop.

▪ Every while loop ends with endwhile.

▪ Syntax : WHILE<condition>.

<statement block>.

ENDWHILE.

2
8
Loop Statements

▪ Exit - is used to exit from the loop.

▪ Continue - skip the current processing of the record and then process the next record in

the loop statement.

▪ Check - if the check condition is not true, loop will skip the current loop pass and move

to next loop pass.

2
9
System Variables

▪ System variables are pre-defined variables in SAP.

▪ SYST is the structure for the system fields.

▪ All system fields are addressed using SY field name.

▪ The various system variables are as follows :

 SY-SUBRC - System variable for return code (successful = 0, not successful = other than

0).

 SY-TABIX - It returns the current line index inside a loop.


3
0
System Variables(Contd.)

 SY-INDEX - It returns the current line index inside do and while Loop.

 SY-DATUM - System variable for current date (internal format - yyyymmdd).

 SY-UNAME - It returns the logon name of the user.

 SY-UZEIT - It returns the current system time(internal format - hhmmss)

 SY-UCOMM - System variable for user command.

3
1
String

▪ A string is a collection of characters.

▪ String is an elementary data type of variable length.

3
2
String Operations - Concatenate

▪ The purpose of concatenate is to combine the strings.

▪ Syntax : CONCATENATE <c1> --------<cn> INTO <c> SEPERATED BY <s>.

▪ In the above syntax : CONCATENATE = keyword , <c1>-------<cn> = individual strings ,

INTO = keyword , <c> = final result string , SEPERATED BY = keyword, <s> = separator.

3
3
String Operations - Split

▪ The purpose of split is to divide the strings.

▪ For split, separator is compulsory.

▪ Syntax : SPLIT <string> AT <separator> INTO <f1> <f2> <f3>…. .

▪ In the above syntax : SPLIT = keyword , <string> = string which we need to split, AT =

keyword, <separator> = any delimiter , INTO = keyword , <f1> <f2><f3>---- = individual

strings.

3
4
String Operations - Condense

▪ The purpose of condense is to remove the leading and trailing spaces and convert a

sequence of spaces into a single space.

▪ Syntax : CONDENSE <c>.

▪ In the above syntax : CONDENSE = keyword , <c> = string which we want to condense.

3
5
String Operations - Condense No-gaps

▪ To remove the entire spaces the addition no-gaps is used with condense.

▪ Syntax : CONDENSE<c> NO-GAPS.

▪ In the above syntax : CONDENSE = keyword , <c> = string which we want to condense ,

NO-GAPS = keyword.

3
6
String Operations - Strlen

▪ The purpose of strlen is to provide the string length.

▪ Syntax : len = strlen( string ).

▪ In the above syntax : len = variable name which returns the length of the string, strlen =

pre-defined operation , string = string whose length needs to be calculated.

3
7
String Operations - Find

▪ The purpose of find is to find a particular pattern in a string.

▪ Syntax : FIND <pattern> IN <str> .

▪ In the above syntax : FIND = keyword , <pattern> = is the sequence of characters we are

looking for , IN = keyword , <str> = is the string that is being searched.

3
8
String Operations - Translate

▪ The purpose of translate is to covert the string to upper case or lower case.

▪ Syntax : TRANSLATE <string> TO UPPER CASE/ LOWER CASE.

▪ In the above syntax : TRANSLATE = keyword , <string> = the string which needs to be

converted , TO = keyword , UPPER CASE/LOWER CASE = keyword.

3
9
String Operations - Translate Using Pattern

▪ We can translate a text based upon specific pattern also.

▪ Syntax : TRANSLATE <string> USING <pattern> .

▪ In the above syntax : TRANSLATE = keyword , <string> = the string which needs to be

converted , USING = keyword, pattern = contains letter pairs.

4
0
String Operations - Shift

▪ The purpose of shift is to shift the contents of a string.

▪ It shifts the string by a number of places.

▪ Syntax : SHIFT <string> BY n PLACES <mode>. (by default mode is left)

▪ In the above syntax : SHIFT = keyword , string = string which needs to be shifted, BY =

keyword , n = number , PLACES = keyword , <mode> = left/right/circular.

4
1
String Operations - Substring Processing

▪ Substring is a part of the string or small set of characters from the string.

▪ Depends upon the requirement we need to process the substring.

▪ Syntax : Target_variable = Source_variable[+][starting position of substring](length of

the substring).

4
2
Internal Tables

▪ Internal table is a temporary storage of data on application layer.

▪ Internal table stores any number of records at run time.

▪ A very important use of internal tables is for storing and formatting data from a

database table within a program.

4
3
Work Area In Internal Tables

▪ Work area is also a temporary storage of data on application layer.

▪ Work area are single rows of data.

▪ It is used to process the data in an internal table, one line at a time.

4
4
Types of Internal Tables

▪ Internal table is of 3 types.

1. Standard internal table

2. Sorted internal table

3. Hashed internal table

4
5
Types of Internal Tables

▪ Standard internal table - Standard internal table works on linear/sequential search.

▪ Sorted internal table - Sorted internal table works on binary search.

▪ Hashed internal table - Hashed internal table works on hash function.

4
6
Internal Table With Header Line

▪ In case of internal table with header line, there is an implicit(internal) work area.

▪ The name of the work area is same as that of internal table.

▪ To clearly identify the internal table use brackets after the internal table name(<itab>[]).

▪ CLEAR <itab>[] - Clear the contents of internal table.

Imp point : In case of internal table with header line, CLEAR <itab> clears the work area, not

the internal table. If you want to clear the internal table use brackets after the internal table

name.
4
7
Internal Table Without Header Line

▪ We can avoid the confusion of internal table with header line by using the concept of

internal table without header line.

▪ In case of internal table without header line, there is an explicit(external) work area.

▪ We declare an explicit work area.

▪ The name of the internal table is different from as that of work area.

▪ CLEAR <itab> - Clear the contents of internal table.

4
8
Internal Table Operations

▪ Append - It is used to insert data at the last of the internal table.

▪ Delete - It is used to delete the records from the internal table.

▪ Modify - It is used to modify the records of the Internal table.

▪ Loop - It is used to read the records one by one from the internal table.

▪ Read table - It is used to read the first matching record from the internal table.

▪ Clear , Refresh - It is used to clear the contents of the internal table.

▪ Collect - It is used to make sum of amount values based upon unique character values.
4
9
Internal Table Operations(Contd.)

▪ Sort - It is to sort the internal table. If we are not specifying anything, then by default It

sorts in the ascending order. If we want to sort in descending order, then we need to

specify the keyword descending.

▪ Describe table - It returns the number of records in the internal table.

Syntax : DESCRIBE TABLE <itab> LINES <lv_lines>.

In the above syntax : DESCRIBE TABLE = keyword, <itab> = name of the internal table ,

LINES = keyword, <lv_lines> = local variable which returns the number of records.
5
0
Control Break Statements

▪ Control break statements in SAP ABAP are used within at and endat.

▪ Control break statements is used to control loop in ABAP programming.

▪ The various pre-requisites to apply control break statements are as follows:

 Internal table should be in the sorted order.

 Control break statements should be applied inside a loop.

5
1
Control Break Statements(Contd.)

▪ The various control break statements are as follows:

 AT FIRST - It triggers for the first iteration of the internal table.

 AT LAST - It triggers for the last iteration of internal table.

 AT NEW <FIELDNAME> - Statements execute for a group of records, having the same

value for field name, but for the first iteration of that group.

 AT END OF <FIELDNAME> - Statements execute for a group of records, having the same

value for field name, but for the last iteration of that group.
5
2
Selection Screen

▪ Selection screen is also called as Input screen.

▪ With the help of selection screen user provides a input to the program.

▪ There are 2 ways to provide the input to the program.

 Parameters

 Select-options

5
3
Parameters

▪ Parameters are used to pass the single input.

▪ The various parameters variations are as follows:

 PARAMETERS <p> ...... DEFAULT <f> ......

 PARAMETERS <p> ...... OBLIGATORY ......

 PARAMETERS <p> ...... AS CHECKBOX ......

 PARAMETERS <p> ...... RADIOBUTTON GROUP <radi>......

5
4
Select-Options

▪ Select-options are used to pass a range of inputs.

▪ The various Select-options variations are as follows:

 SELECT-OPTIONS <seltab> FOR <f> ... DEFAULT <g> [TO <h>]

 SELECT-OPTIONS <seltab> FOR <f> ... NO-EXTENSION

 SELECT-OPTIONS <seltab> FOR <f> ... NO INTERVALS

 SELECT-OPTIONS <seltab> FOR <f> ... OBLIGATORY

5
5
Select-Options(Contd.)

▪ A select-option has 4 parts.

1. Sign - I/E(include/exclude)

2. Option - Relational operator( EQ, BT, LT etc.)

3. Low - Low value

4. High - High value

5
6
Open SQL

▪ SQL stands for structured query language.

▪ It is of 2 types.

1. Open SQL - Open SQL is database independent.

2. Native SQL - Native SQL is database dependent.

5
7
Open SQL Queries

▪ The figure shows an example of open SQL query.

▪ This query fetches data from database table ztordh_88, based upon the select-options

s_ono.

▪ Whenever, there is a select-options, we need to use IN operator.

Example of Open SQL Query

5
8
Open SQL Queries(Contd.)

▪ The figure shows an example of open SQL query.

▪ This query fetches data from database table ztordh_88, based upon the parameter

p_ono.

▪ Whenever, there is a parameter, we need to use = operator.


Example of Open SQL Query

5
9
Open SQL Queries - For All Entries In

▪ When we fetch the data from multiple tables, ‘For All Entries In’ is the best alternative.

▪ It reduces the database load.

▪ The parent internal table(lt_data1) must not be empty.


Use of For All Entries In

6
0
Open SQL Queries - Join

▪ With the help of join, we can read from more than one table in a single select

statement.
Use of Join to Fetch Data From Multiple Tables

6
1
Best Performance Practices

▪ Never use * in the query. Fetch the data of only those columns which are required.

▪ Columns fetching sequence needs to be same as that of data dictionary column

sequence.

▪ Where condition column sequence needs to be same as that of data dictionary column

sequence.

▪ Never use corresponding in the query.

6
2
Best Performance Practices(Contd.)

▪ For fetching data from foreign key tables/dependent tables - check for sy-subrc or

internal table not initial condition.

▪ Use binary search in read table.

▪ Use parallel cursor in nested loops.

▪ For multiple conditions, use case conditional statement rather than if conditional

statement.

6
3
Message Class

▪ Messages always plays an important role for end user.

▪ The various types of messages are - A(abort), E(error), S(success), I(information) etc.

▪ The transaction code for message class is SE91.


Transaction Code : SE91

6
4
Message Class(Contd.)

▪ A message number length is 3(000-999).

▪ One can pass values to a message number using &.

▪ In a message number, we can pass up to 4 &.

▪ Syntax to use a message in a program: MESSAGE E000(<msg class >).

▪ In the above syntax - MESSAGE = keyword , E = error message type , 000 is message

number , <msg class> = name of the message class.

6
5
Transaction Code

▪ One can create own shortcut/transactions to access the applications.

▪ The transaction code to create a transaction code is SE93.

Transaction Code : SE93

6
6
Classical Report Events

▪ SAP ABAP classical reports are the most basic ABAP reports that contain both selection

screen and an output screen.

▪ SAP ABAP uses events to trigger the specific codes in a pre-defined sequence.

▪ The various classical report events are as follows:

 Initialization

 At selection-screen

 Start-of-selection
6
7
Classical Report Events(Contd.)

 End-of-selection

 Top-of-page

 End-of-page

6
8
Initialization

▪ This event calls before displaying the selection screen/Input screen.

▪ The purpose of this event is to assign the default values to parameters and select-

options.

6
9
AT Selection-Screen

▪ This event calls when user performs some action (enter, F4 etc.) on to the selection

screen.

▪ The purpose of this event is to validate the Input.

7
0
Start-of-Selection

▪ This event calls when user clicks execute button on the selection screen.

▪ The selection logic is the part of this event.

7
1
End-of-Selection

▪ This event calls when selection process ends.

▪ This event helps to identify the end of data/records.

7
2
Top-of-Page

▪ The purpose of this event is to provide title/header at the beginning of a new page.

7
3
End-of-Page

▪ The purpose of this event is to provide footer or some information at the end of a page.

▪ For end-of-page event to trigger, we need to provide the line-count.

▪ Example: LINE COUNT 5(2), It means the total number of lines on a page is 5 and out of

that 2 are reserved for end-of-page.

7
4
Interactive Classical Report Events

▪ The various interactive classical report events are as follows:

 At user-command

 At line-selection

7
5
AT User-Command

▪ When user clicks on the functions created using pf-status, at that time at user-command

event triggers.

▪ The system variable sy-ucomm is used to capture the value of function code.

7
6
AT Line-Selection

▪ When user double clicks on the line or select a line and press F2, at that time at line-

selection event triggers.

▪ The number of basic list in classical report is 1.

▪ The number of secondary lists in classical report is 20.

7
7
System Variables in Interactive Classical Report Events

▪ The various system variables used in interactive classical report events are as follows:

 SY-LISEL - It is a system variable which returns the contents of the selected line.

 SY-LSIND - It is a system variable which returns the index of the displayed list.

7
8
Database Operations

▪ Database operations deals with database tables. The various database operations are as

follows:

 Select - Select is used to fetch data from database tables.

 Insert - Insert is used to insert the records to database tables.

 Update - Update is used to update the existing records in the database tables.

 Delete - Delete is used to delete the existing records from database tables.

7
9
Database Operations(Contd.)

 Modify - It works for both - insert + update. For existing records - It acts as update, for

non-existing records - it acts as Insert.

8
0
Modularization Techniques

▪ Modularization is a technique used to divide the application program into smaller units.

▪ This helps to maintain the code in an easy manner and reduce the code redundancy.

▪ The various modularization techniques are as follows :

 Function Modules

 Subroutines

8
1
Function Modules

▪ It is a modularization technique.

▪ The transaction code to create a function module is SE37.

▪ To create a function module, we need to create a function group.

8
2
Function Group

▪ Function group is a container for the function modules.

▪ The transaction code to create a function group is SE80.

▪ A function group can store up to 99 function modules.

8
3
Tabs of Function Modules

▪ The various tabs of function module are as follows :

 Attributes - It provides the generic information about the function module like - date,

username, function group name, package name etc.

 Import - Input parameters of the function module.

 Export - Output parameters of the function module.

 Changing - Changing can acts as both input or output parameters.

 Tables - is for internal tables.


8
4
Tabs of Function Modules(Contd.)

 Exceptions - This tab is used to raise the exception/error.

 Source code - The purpose of this tab is to write the logic.

8
5
Calling of Function Modules

▪ We can call the function module in a program through the pattern button.

▪ Click on the pattern button and pass the function module name by choosing

call function radio button.


Pattern button in ABAP Editor

8
6
Subroutines

▪ Subroutine is also a modularization technique.

▪ There is no separate transaction code to create a subroutine.

▪ Subroutine is created in ABAP editor itself.

▪ Every subroutine starts with form and ends with endform.

8
7
Subroutines(Contd.)

▪ The syntax to write a subroutine is - PERFORM <perform name> TABLES <tables

parameters> USING <using parameters> CHANGING <changing parameters>.

▪ We cannot change the sequence of tables using changing , but if any of them

(tables/using/changing) is not required, we can skip it.

8
8
Function Modules and Subroutines Comparison

▪ There is a separate transaction code SE37 (workbench tool) to create a function module,

whereas there is no separate workbench tool to create a subroutine.

▪ We can check the output of function module using F8(we can independently run a

function module to check the output), whereas we cannot run a subroutine

independently.

8
9
Thank You

9
0

You might also like