SlideShare a Scribd company logo
Basic Programming
• WRITE :
1. Use to print the output.
2. Ex:
a) write : ‘Donald’.
b) Write : ‘Donald’ , ‘Sap abap’.
c) Write : ‘Donald ‘ , / ‘Sap abap’.
d) Write : ‘Donald ‘ , / ‘Sap abap’ color 2. (1-7)
e) Write : 30 ‘Donald ‘ , / ‘Sap abap’.
f) Write : 30 ‘Donald ‘ , / 30 ‘Sap abap’.
g) Write : 30 ‘Donald ‘ , / , /30 ‘Sap abap’.
or
Write : 30 ‘Donald ‘ .
skip.
write : ‘Sap abap’.
a) Skip 10.
Parameters :
• To provide the input option to the user.
• Ex :
parameters : p_name type c.
write : p_name.
• Every program is having 3 screens.
1. ABAP Editor
2. Selection Screen
3. Output Screen
Data:
• Used to declare variables.
ex : data : p3 type i.
SELECT-OPTIONS : To provide the range input option to the user.
Ex: select-options : p_vbeln for VBAK-vbeln.
Data Declaration
Data Type Description Length Declaration Default Value
C CHAR REQUIRE VAR(10) TYPE C SPACE
I INT --- VAR TYPE I 0
N NUM REQUIRE VAR(3) TYPE N 000
D DATE ----- VAR TYPE D 00000000
T TIME --------- VAR TYPE T 000000
F FLOAT
(MAX 8)
VAR TYPE F 0.0000000000
0E+00
P PACKED
DECIMAL
(MAX 16) VAR TYPE P DECIMAL 2 0.00
X XSTRING ----- VAR TYPE X 00
STRING STRING -------- VAR TYPE STRING SPACE
Control Break Statements:
1. Do --- endo.
2. While -- endwhile.
3. If.. Endif.
4. Case … endcase.
5. If…. Elseif … elseif … endif.
Do enddo
• Ex:
Data : count type I.
Parameters : num type I.
count = 1.
Do num times.
write : / count.
count = count + 1.
enddo.
While .. Endwhile
• Ex:
DATA: COUNT TYPE I.
PARAMETERS : NUM TYPE I.
COUNT = 1.
WHILE COUNT <= NUM .
WRITE : / COUNT .
COUNT = COUNT + 1.
ENDWHILE.
If … endif
• Ex:
PARAMETERS : SAL TYPE I.
IF SAL > 25000.
WRITE : 'software engineer'.
ENDIF.
If… else … endif
• Ex :
PARAMETERS : SAL TYPE I.
IF SAL > 25000.
WRITE : 'software engineer'.
else.
WRITE : 'Support Engineer'.
ENDIF.
Case .. endcase
• Ex:
PARAMETERS: color TYPE i.
CASE COLOR.
WHEN '1'.
WRITE 'color 1' COLOR 1.
WHEN '2'.
WRITE 'color 2' COLOR 2.
WHEN '3'.
WRITE 'color 3' COLOR 3.
WHEN '4'.
WRITE 'color 4' COLOR 4.
WHEN '5'.
WRITE 'color 5' COLOR 5.
WHEN OTHERS.
WRITE : 'color not found'.
ENDCASE.
System Variables
• SY-DATUM : System date.
• SY-UZEIT : System time
• SY-CPROG: Current program name
• SY-REPID: Current program name
• SY-UNAME: System username
• SY-LANGU: System language
• SY-LINNO: Current line number
• SY-ULINE: Horizontal line
• SY-VLINE: Vertical Line
• SY-TCODE : Current Transaction code
All the system variable available in structure SYST
• SY-SUBRC : returns 0 if previous statement executed successfully.
• SY-TABIX: Stores internal table index.
• SY-INDEX : Can be used as a counter in the loops.
• SY-LSIND : returns list index.
Operation on string
• Concatenate : Used to combine the character.
• Ex:
data: name(20) TYPE c.
PARAMETERS : name1(10) TYPE c,
name2(10) TYPE c.
CONCATENATE name1 name2 INTO name.
WRITE name.
• Separated by : To maintain the space between 2 strings.
Ex:
data: name(20) TYPE c.
PARAMETERS : name1(10) TYPE c,
name2(10) TYPE c.
CONCATENATE name1 name2 INTO name SEPARATED BY space.
WRITE name.
• Alignments
• RIGHT-JUSTIFIED AND LEFT-JUSTIFIED :
• By default always characters are left justified and numbers are
right justified.
Ex :
PARAMETERS : name(10) TYPE c,
num TYPE i.
WRITE : name COLOR 2 RIGHT-JUSTIFIED,
/ num COLOR 3 LEFT-JUSTIFIED.
CENTERED :
PARAMETERS : name(10) TYPE c,
num TYPE i.
WRITE : name COLOR Centered ,
/ num COLOR 3 LEFT-JUSTIFIED.
• Split : Using to split.
Ex:
data: var1(10) TYPE c,
var2(10) TYPE c.
PARAMETERS : p_name(20) TYPE c.
SPLIT p_name at '.' INTO var1 var2.
WRITE : / var1,
/ var2 .
• Replace : It replace only 1st occurrence in string.
Ex:
PARAMETERS : p_name(20) TYPE c.
REPLACE 'A' WITH 'B' into p_name.
WRITE : p_name.
• Replace all occurrences of : To replace the all the occurrence
of given string.
• Ex :
PARAMETERS : p_name(20) TYPE c.
REPLACE ALL OCCURRENCES OF 'A' in p_name WITH 'B'.
WRITE : p_name.
• TRANSLATE : It works similar to replace all occurrences of
PARAMETERS : p_text(20) TYPE c.
TRANSLATE p_text USING 'AB'.
WRITE : p_text.
• Offset : Splitting based on position.
Ex :
DATA : p1(10) TYPE c,
p2(10) TYPE c.
PARAMETERS : p_text(10) TYPE c.
p1 = p_text(2).
p2 = p_text+2(8).
WRITE : / p1 , / p2.
• CONDENSE :
Ex :
PARAMETERS : k(5) TYPE c.
CONDENSE k NO-GAPS.
WRITE : k .
• NO-GAP : Use to remove the gap.
Ex:
WRITE : 'jugul' , 'donald'.
WRITE : / 'jugul' NO-GAP, 'donald'.
• NO-ZERO : Use to remove zero’s.
Ex :
PARAMETERS : k(5) TYPE n.
WRITE : k no-zero.
Structures
• Structures are combination of different variables or types.
• Syntax :
types : Begin of <structure name>,
------
------
End of <structure name>.
Ex :
Types: Begin of ABC,
name(10) type c,
DOB type d,
age(2) type c,
End of ABC.
A variable which has been declared with reference of structure
is Know as Work Area.
DATA: WA type ABC.
• Assigning value to Work area.
WA-NAME = ‘STEVE’.
WA-DOB = ‘22-07-1990’.
WA-AGE = ’26’.
WRITE : / WA-NAME , WA-DOB, WA-AGE.
• Clear : Clear is used to clear the content of variable.
TYPES : BEGIN OF T_STD,
NAME(20) TYPE C,
AGE TYPE I,
CLASS TYPE I,
END OF T_STD.
DATA : WA TYPE T_STD.
WA-NAME = 'DONALD'.
WA-AGE = 25.
WA-CLASS = 2.
WRITE : / WA-NAME , WA-AGE ,WA-CLASS.
CLEAR WA.
WA-NAME = 'JUGUL'.
WA-CLASS = 3.
WRITE : / WA-NAME , WA-AGE ,WA-CLASS.
Internal Table
• Internal table is like table which can be able to hold multiple
records.
• Syntax :
< variable name> type table of <structure/table name >.
Ex :
TYPES : BEGIN OF T_STD,
NAME(20) TYPE C,
AGE TYPE I,
CLASS TYPE I,
END OF T_STD.
DATA : WA TYPE T_STD,
ITAB TYPE TABLE OF T_STD.
WA-NAME = 'DONALD'.
WA-AGE = 25.
WA-CLASS = 2.
• Append is used to append the record from work area to
internal table.
APPEND WA TO ITAB.
CLEAR WA.
WA-NAME = 'JUGUL'.
WA-CLASS = 3.
APPEND WA TO ITAB.
CLEAR WA.
• To access data from internal table .
LOOP AT ITAB INTO WA.
WRITE : / WA-NAME ,WA-AGE , WA-CLASS.
ENDLOOP.
To select record from Database
table into work Area.
• Ex:
DATA : WA TYPE ZSTUD.
SELECT SINGLE * FROM ZSTUD
INTO WA
WHERE STUDID = '124'.
WRITE:/ WA-STUDID , WA-DEPARTID1, WA-STUDNAME , WA-
FEES.
Corresponding fields of
• Used to place the selected fields at corresponding fields in
WA/internal table.
• Ex :
DATA : WA TYPE ZSTUD.
SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD
INTO CORRESPONDING FIELDS OF WA
WHERE STUDID = '124'.
WRITE:/ WA-DEPARTID1, WA-STUDNAME .
• If we want to put data into work area , then we have to use
single in our selection statement.
• Using corresponding fields of in program reduces the
performance.
• How to avoid ?
Ans : create the structure for required field.
Ex :
TYPES: BEGIN OF T_STD,
DEPARTID1(2) TYPE C,
STUDNAME(60) TYPE C,
END OF T_STD.
DATA: WA TYPE T_STD.
SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD
INTO WA
WHERE STUDID = '124'.
WRITE:/ WA-DEPARTID1, WA-STUDNAME .
• In structure instead of assigning data type and length ,we can
also assign the database table and field name.
Ex:
TYPES: BEGIN OF T_STD,
DEPARTID1 TYPE ZSTUD-DEPARTID1,
STUDNAME TYPE ZSTUD-STUDNAME,
END OF T_STD.
DATA: WA TYPE T_STD.
SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD
INTO WA
WHERE STUDID = '124'.
WRITE:/ WA-DEPARTID1, WA-STUDNAME .
• Also we can do it, by assigning data element directly.
• Ex:
TYPES: BEGIN OF T_STD,
DEPARTID1 TYPE ZDEPID,
STUDNAME TYPE ZSTUDNAME1,
END OF T_STD.
DATA: WA TYPE T_STD.
SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD
INTO WA
WHERE STUDID = '124'.
WRITE:/ WA-DEPARTID1, WA-STUDNAME .
• Using parameter:
Ex :
TYPES: BEGIN OF T_STD,
DEPARTID1 TYPE ZDEPID,
STUDNAME TYPE ZSTUDNAME1,
END OF T_STD.
DATA: WA TYPE T_STD.
PARAMETERS : STUID TYPE ZSTUD-STUDID.
SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD
INTO WA
WHERE STUDID = STUID.
WRITE:/ WA-DEPARTID1, WA-STUDNAME .
Select ---- EndSelect
• Used to select multiple records directly from database table.
Ex :
DATA : WA TYPE MAKT.
PARAMETERS : P_MATNR TYPE MAKT-MATNR.
SELECT * FROM MAKT
INTO WA WHERE MATNR = P_MATNR.
WRITE : / WA-MATNR , WA-SPRAS, WA-MAKTX, WA-MAKTG.
ENDSELECT.
• It fetches records multiple time from database table. So it
reduces the performance.
Internal Table
Ex:
DATA : WA TYPE MAKT,
ITAB TYPE TABLE OF MAKT.
PARAMETERS : P_MATNR TYPE MAKT-MATNR.
SELECT * FROM MAKT
INTO TABLE ITAB WHERE MATNR = P_MATNR.
LOOP AT ITAB INTO WA.
WRITE : / WA-MATNR , WA-SPRAS, WA-MAKTX, WA-MAKTG.
ENDLOOP.
Note : if there is no composite key , then work area is sufficient to fetch data from
database.
Fetching data from 2 tables.
• Ex :
TYPES : BEGIN OF T_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
END OF T_VBAP.
DATA : ITAB TYPE TABLE OF T_VBAP,
WA TYPE T_VBAP,
WA1 TYPE MAKT.
PARAMETERS : P_VBELN TYPE VBAP-VBELN.
SELECT VBELN POSNR MATNR FROM VBAP
INTO TABLE ITAB WHERE VBELN = P_VBELN.
LOOP AT ITAB INTO WA.
WRITE : / WA-VBELN , WA-POSNR , WA-MATNR.
SELECT SINGLE * FROM MAKT INTO WA1 WHERE MATNR = WA-MATNR AND SPRAS = 'EN'.
WRITE : WA1-MAKTX.
ENDLOOP.
Note: It reduces the performance . Because within the loop fetching data from database number of times.
Inner JoinEx:
TYPES : BEGIN OF T_STR,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF T_STR.
DATA : ITAB TYPE TABLE OF T_STR,
WA TYPE T_STR.
PARAMETERS : P_VBELN TYPE VBAP-VBELN.
SELECT VBELN
POSNR
A~MATNR
MAKTX
INTO TABLE ITAB
FROM VBAP AS A INNER JOIN MAKT AS B ON B~MATNR = A~MATNR
WHERE VBELN = P_VBELN AND SPRAS = 'EN'.
LOOP AT ITAB INTO WA.
WRITE : / WA-VBELN , WA-POSNR , WA-MATNR , WA-MAKTX.
ENDLOOP.
Note : Whenever tables are less than or equal 3 go for inner join technique.
For all entries in
Ex :
TYPES : BEGIN OF T_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
END OF T_VBAP.
TYPES : BEGIN OF T_MAKT,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF T_MAKT.
TYPES : BEGIN OF T_FINAL,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF T_FINAL.
DATA : WA TYPE T_VBAP,
ITAB TYPE TABLE OF T_VBAP,
WA1 TYPE T_MAKT,
ITAB1 TYPE TABLE OF T_MAKT,
WA2 TYPE T_FINAL,
ITAB2 TYPE TABLE OF T_FINAL.
PARAMETERS : P_VBELN TYPE VBAP-VBELN.
START-OF-SELECTION.
SELECT VBELN POSNR MATNR FROM VBAP
INTO TABLE ITAB
WHERE VBELN = P_VBELN .
IF ITAB IS NOT INITIAL.
SELECT MATNR MAKTX FROM MAKT
INTO TABLE ITAB1 FOR ALL ENTRIES IN ITAB
WHERE MATNR = ITAB-MATNR AND SPRAS = 'EN'.
ENDIF.
LOOP AT ITAB INTO WA.
WA2-VBELN = WA-VBELN.
WA2-POSNR = WA-POSNR.
WA2-MATNR = WA-MATNR.
CLEAR WA1.
READ TABLE ITAB1 INTO WA1 WITH KEY MATNR = WA-MATNR.
If sy-subrc = 0.
WA2-MAKTX = WA1-MAKTX.
Endif.
APPEND WA2 TO ITAB2.
ENDLOOP.
LOOP AT ITAB2 INTO WA2.
WRITE : / WA2-VBELN , WA2-POSNR , WA2-MATNR , WA2-MAKTX.
ENDLOOP.
• Note :
1. Check the for all entries table is not empty .
2. Write all key field in selection criteria.
3. Data type and length of for all entries matching field should
be match for both the table.
• Important : Read table.
1. Clear the work area before read the table.
2. After reading table use sy-subrc .
3. To improve the performance use Binary search in read
statement.
Ex :
READ TABLE ITAB1 INTO WA1 WITH KEY MATNR = WA-
MATNR binary search.
* before the loop sort the internal table.
sort itab1 by matnr.
Different Types of Internal
Table
• Based on header line internal tables are classified into 2 types:
• Header Line nothing but work area.
1. Internal table with header line .
2. Internal table without header line.
• Internal table without header line
Ex:
Types : begin of stru,
name(20) type c,
age(2) type c,
end of stru.
Data: wa type stru,
itab type table of stru.
• Internal table with header line.
Ex
Types : begin of stru,
name(20) type c,
age(2) type c,
end of stru.
Data: itab type table of stru with header line.
Itab-name = ‘Donald’.
Itab-age = 25.
Append itab.
Loop at itab.
write : / itab-name , itab-age.
Endloop.
• Based on sorting technique internal tables can divided 3 types.
1. Standard internal table.
2. Sorted internal table.
3. Hashed internal table.
• By default any internal table is standard internal table.
1. Standard internal table.
• This is follows linear search(one by one) algorithm.
• Searching time is proportional to number of records.
• Syntax:
Data : <internal table > TYPE STANDARD TABLE OF <TB /STR
name> WITH NON-UNIQUE KEY <key > WITH HEADER LINE.
<optional>
• Sorted internal tables :
1. This is follows binary search help.
2. It supports unique as well as no-unique key.
3. Syntax :
Data : <internal table > TYPE SORTED TABLE OF <tab/str name>
WITH <UNIQUE / non-unique > KEY <keyname> WITH
HEADER LINE .
<optional >
• Hashed internal table.
1. There is no non-unique key.
2. Its follows index based search.
3. Syntax :
Data : <internal table > TYPE HASHED TABLE OF <TB/STR NAME>
WITH UNIQUE KEY <KEY> WITH HEADER LINE.
<OPTIONAL>

More Related Content

PDF
FDMEE script examples
DOCX
Field symbols
PPT
abap list viewer (alv)
PDF
Ps training mannual power users
PPTX
Sap abap
PPT
Module pool programming
DOC
1000 solved questions
PPT
List Processing in ABAP
FDMEE script examples
Field symbols
abap list viewer (alv)
Ps training mannual power users
Sap abap
Module pool programming
1000 solved questions
List Processing in ABAP

What's hot (20)

PPSX
Control Structures in Visual Basic
PPT
08.Abap Dialog Programming Overview
PDF
Abap reports
PDF
Dialog programming ABAP
PDF
Step by-step-to-upload-new-customer-master-record-with-lsmw
PDF
Types of normalization
PPT
PPTX
Common language runtime clr
PPTX
Android styles and themes
PPTX
Sap abap
PPTX
Form Validation in JavaScript
PDF
Using idoc method in lsmw
PPTX
SAP Modularization techniques
PPT
ABAP Object oriented concepts
PDF
How to add new Object Link in SAP DMS
PPT
0106 debugging
PDF
Ooabap notes with_programs
PPTX
SAP ABAp module Pool programming give by Rahul Mehta
PPTX
Reports
PPT
Normlaization
Control Structures in Visual Basic
08.Abap Dialog Programming Overview
Abap reports
Dialog programming ABAP
Step by-step-to-upload-new-customer-master-record-with-lsmw
Types of normalization
Common language runtime clr
Android styles and themes
Sap abap
Form Validation in JavaScript
Using idoc method in lsmw
SAP Modularization techniques
ABAP Object oriented concepts
How to add new Object Link in SAP DMS
0106 debugging
Ooabap notes with_programs
SAP ABAp module Pool programming give by Rahul Mehta
Reports
Normlaization
Ad

Viewers also liked (20)

PDF
Computer Programing
PDF
Computer programing
PPTX
Programing techniques
PDF
Object-Oriented Programming 2
PPTX
System software lecture infs429
PPTX
Introduction to basic programming
PPT
The Basics of programming
PDF
Introduction to Computer and Programing - Lecture 04
PPT
Programing Fundamental
PPTX
Basic programming concepts
PPTX
Basic programming
PPT
Introduction to visual basic programming
PPTX
PPTX
C Programming Language Tutorial for beginners - JavaTpoint
PPTX
Computer Languages.
PPTX
Programming language
PDF
Beginning programming for dummies 3rd edition
PPTX
Intro to Functional Programming
PPT
Lect 1. introduction to programming languages
PDF
Programming For Non-Programmers: 2013
Computer Programing
Computer programing
Programing techniques
Object-Oriented Programming 2
System software lecture infs429
Introduction to basic programming
The Basics of programming
Introduction to Computer and Programing - Lecture 04
Programing Fundamental
Basic programming concepts
Basic programming
Introduction to visual basic programming
C Programming Language Tutorial for beginners - JavaTpoint
Computer Languages.
Programming language
Beginning programming for dummies 3rd edition
Intro to Functional Programming
Lect 1. introduction to programming languages
Programming For Non-Programmers: 2013
Ad

Similar to Basic programming (20)

PDF
Here upload the document SAP ABAP Basic Concepts
PDF
Abap basics 01
PPT
1582627
PPT
List Processing in ABAP
PDF
Introduction to IBM PL/1 Programming Language
PDF
ABAP Cheat sheet
DOC
Program For Parsing2
PPT
chapter-1abapprogrammingoverview-091205081953-phpapp01
PPT
Chapter 1abapprogrammingoverview-091205081953-phpapp01
PPT
Abapprogrammingoverview 090715081305-phpapp02
PPT
Abapprogrammingoverview 090715081305-phpapp02
PPT
Chapter 1 Abap Programming Overview
PPT
ABAP Programming Overview
PDF
dbms lab manual
PPT
PDF
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
PPT
Pl sql guide
PPTX
PL_SQL - II.pptx
DOC
PDF
Here upload the document SAP ABAP Basic Concepts
Abap basics 01
1582627
List Processing in ABAP
Introduction to IBM PL/1 Programming Language
ABAP Cheat sheet
Program For Parsing2
chapter-1abapprogrammingoverview-091205081953-phpapp01
Chapter 1abapprogrammingoverview-091205081953-phpapp01
Abapprogrammingoverview 090715081305-phpapp02
Abapprogrammingoverview 090715081305-phpapp02
Chapter 1 Abap Programming Overview
ABAP Programming Overview
dbms lab manual
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
Pl sql guide
PL_SQL - II.pptx

More from Jugul Crasta (7)

PPTX
SAP Adobe forms
PPTX
SAP ALE Idoc
PPTX
SAP Smart forms
PPTX
Sap scripts
PPTX
SAP Batch data communication
PPTX
Sap architecture
PPTX
Sap erp introduction
SAP Adobe forms
SAP ALE Idoc
SAP Smart forms
Sap scripts
SAP Batch data communication
Sap architecture
Sap erp introduction

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Chapter 3 Spatial Domain Image Processing.pdf
Programs and apps: productivity, graphics, security and other tools
Reach Out and Touch Someone: Haptics and Empathic Computing
Diabetes mellitus diagnosis method based random forest with bat algorithm
Per capita expenditure prediction using model stacking based on satellite ima...
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Understanding_Digital_Forensics_Presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?

Basic programming

  • 2. • WRITE : 1. Use to print the output. 2. Ex: a) write : ‘Donald’. b) Write : ‘Donald’ , ‘Sap abap’. c) Write : ‘Donald ‘ , / ‘Sap abap’. d) Write : ‘Donald ‘ , / ‘Sap abap’ color 2. (1-7) e) Write : 30 ‘Donald ‘ , / ‘Sap abap’. f) Write : 30 ‘Donald ‘ , / 30 ‘Sap abap’. g) Write : 30 ‘Donald ‘ , / , /30 ‘Sap abap’. or Write : 30 ‘Donald ‘ . skip. write : ‘Sap abap’. a) Skip 10.
  • 3. Parameters : • To provide the input option to the user. • Ex : parameters : p_name type c. write : p_name. • Every program is having 3 screens. 1. ABAP Editor 2. Selection Screen 3. Output Screen Data: • Used to declare variables. ex : data : p3 type i. SELECT-OPTIONS : To provide the range input option to the user. Ex: select-options : p_vbeln for VBAK-vbeln.
  • 4. Data Declaration Data Type Description Length Declaration Default Value C CHAR REQUIRE VAR(10) TYPE C SPACE I INT --- VAR TYPE I 0 N NUM REQUIRE VAR(3) TYPE N 000 D DATE ----- VAR TYPE D 00000000 T TIME --------- VAR TYPE T 000000 F FLOAT (MAX 8) VAR TYPE F 0.0000000000 0E+00 P PACKED DECIMAL (MAX 16) VAR TYPE P DECIMAL 2 0.00 X XSTRING ----- VAR TYPE X 00 STRING STRING -------- VAR TYPE STRING SPACE
  • 5. Control Break Statements: 1. Do --- endo. 2. While -- endwhile. 3. If.. Endif. 4. Case … endcase. 5. If…. Elseif … elseif … endif.
  • 6. Do enddo • Ex: Data : count type I. Parameters : num type I. count = 1. Do num times. write : / count. count = count + 1. enddo.
  • 7. While .. Endwhile • Ex: DATA: COUNT TYPE I. PARAMETERS : NUM TYPE I. COUNT = 1. WHILE COUNT <= NUM . WRITE : / COUNT . COUNT = COUNT + 1. ENDWHILE.
  • 8. If … endif • Ex: PARAMETERS : SAL TYPE I. IF SAL > 25000. WRITE : 'software engineer'. ENDIF.
  • 9. If… else … endif • Ex : PARAMETERS : SAL TYPE I. IF SAL > 25000. WRITE : 'software engineer'. else. WRITE : 'Support Engineer'. ENDIF.
  • 10. Case .. endcase • Ex: PARAMETERS: color TYPE i. CASE COLOR. WHEN '1'. WRITE 'color 1' COLOR 1. WHEN '2'. WRITE 'color 2' COLOR 2. WHEN '3'. WRITE 'color 3' COLOR 3. WHEN '4'. WRITE 'color 4' COLOR 4. WHEN '5'. WRITE 'color 5' COLOR 5. WHEN OTHERS. WRITE : 'color not found'. ENDCASE.
  • 11. System Variables • SY-DATUM : System date. • SY-UZEIT : System time • SY-CPROG: Current program name • SY-REPID: Current program name • SY-UNAME: System username • SY-LANGU: System language • SY-LINNO: Current line number • SY-ULINE: Horizontal line • SY-VLINE: Vertical Line • SY-TCODE : Current Transaction code All the system variable available in structure SYST • SY-SUBRC : returns 0 if previous statement executed successfully. • SY-TABIX: Stores internal table index. • SY-INDEX : Can be used as a counter in the loops. • SY-LSIND : returns list index.
  • 12. Operation on string • Concatenate : Used to combine the character. • Ex: data: name(20) TYPE c. PARAMETERS : name1(10) TYPE c, name2(10) TYPE c. CONCATENATE name1 name2 INTO name. WRITE name.
  • 13. • Separated by : To maintain the space between 2 strings. Ex: data: name(20) TYPE c. PARAMETERS : name1(10) TYPE c, name2(10) TYPE c. CONCATENATE name1 name2 INTO name SEPARATED BY space. WRITE name.
  • 14. • Alignments • RIGHT-JUSTIFIED AND LEFT-JUSTIFIED : • By default always characters are left justified and numbers are right justified. Ex : PARAMETERS : name(10) TYPE c, num TYPE i. WRITE : name COLOR 2 RIGHT-JUSTIFIED, / num COLOR 3 LEFT-JUSTIFIED. CENTERED : PARAMETERS : name(10) TYPE c, num TYPE i. WRITE : name COLOR Centered , / num COLOR 3 LEFT-JUSTIFIED.
  • 15. • Split : Using to split. Ex: data: var1(10) TYPE c, var2(10) TYPE c. PARAMETERS : p_name(20) TYPE c. SPLIT p_name at '.' INTO var1 var2. WRITE : / var1, / var2 .
  • 16. • Replace : It replace only 1st occurrence in string. Ex: PARAMETERS : p_name(20) TYPE c. REPLACE 'A' WITH 'B' into p_name. WRITE : p_name.
  • 17. • Replace all occurrences of : To replace the all the occurrence of given string. • Ex : PARAMETERS : p_name(20) TYPE c. REPLACE ALL OCCURRENCES OF 'A' in p_name WITH 'B'. WRITE : p_name.
  • 18. • TRANSLATE : It works similar to replace all occurrences of PARAMETERS : p_text(20) TYPE c. TRANSLATE p_text USING 'AB'. WRITE : p_text.
  • 19. • Offset : Splitting based on position. Ex : DATA : p1(10) TYPE c, p2(10) TYPE c. PARAMETERS : p_text(10) TYPE c. p1 = p_text(2). p2 = p_text+2(8). WRITE : / p1 , / p2.
  • 20. • CONDENSE : Ex : PARAMETERS : k(5) TYPE c. CONDENSE k NO-GAPS. WRITE : k . • NO-GAP : Use to remove the gap. Ex: WRITE : 'jugul' , 'donald'. WRITE : / 'jugul' NO-GAP, 'donald'. • NO-ZERO : Use to remove zero’s. Ex : PARAMETERS : k(5) TYPE n. WRITE : k no-zero.
  • 21. Structures • Structures are combination of different variables or types. • Syntax : types : Begin of <structure name>, ------ ------ End of <structure name>.
  • 22. Ex : Types: Begin of ABC, name(10) type c, DOB type d, age(2) type c, End of ABC. A variable which has been declared with reference of structure is Know as Work Area. DATA: WA type ABC. • Assigning value to Work area. WA-NAME = ‘STEVE’. WA-DOB = ‘22-07-1990’. WA-AGE = ’26’. WRITE : / WA-NAME , WA-DOB, WA-AGE.
  • 23. • Clear : Clear is used to clear the content of variable. TYPES : BEGIN OF T_STD, NAME(20) TYPE C, AGE TYPE I, CLASS TYPE I, END OF T_STD. DATA : WA TYPE T_STD. WA-NAME = 'DONALD'. WA-AGE = 25. WA-CLASS = 2. WRITE : / WA-NAME , WA-AGE ,WA-CLASS. CLEAR WA. WA-NAME = 'JUGUL'. WA-CLASS = 3. WRITE : / WA-NAME , WA-AGE ,WA-CLASS.
  • 24. Internal Table • Internal table is like table which can be able to hold multiple records. • Syntax : < variable name> type table of <structure/table name >. Ex : TYPES : BEGIN OF T_STD, NAME(20) TYPE C, AGE TYPE I, CLASS TYPE I, END OF T_STD. DATA : WA TYPE T_STD, ITAB TYPE TABLE OF T_STD.
  • 25. WA-NAME = 'DONALD'. WA-AGE = 25. WA-CLASS = 2. • Append is used to append the record from work area to internal table. APPEND WA TO ITAB. CLEAR WA. WA-NAME = 'JUGUL'. WA-CLASS = 3. APPEND WA TO ITAB. CLEAR WA. • To access data from internal table . LOOP AT ITAB INTO WA. WRITE : / WA-NAME ,WA-AGE , WA-CLASS. ENDLOOP.
  • 26. To select record from Database table into work Area. • Ex: DATA : WA TYPE ZSTUD. SELECT SINGLE * FROM ZSTUD INTO WA WHERE STUDID = '124'. WRITE:/ WA-STUDID , WA-DEPARTID1, WA-STUDNAME , WA- FEES.
  • 27. Corresponding fields of • Used to place the selected fields at corresponding fields in WA/internal table. • Ex : DATA : WA TYPE ZSTUD. SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD INTO CORRESPONDING FIELDS OF WA WHERE STUDID = '124'. WRITE:/ WA-DEPARTID1, WA-STUDNAME . • If we want to put data into work area , then we have to use single in our selection statement. • Using corresponding fields of in program reduces the performance.
  • 28. • How to avoid ? Ans : create the structure for required field. Ex : TYPES: BEGIN OF T_STD, DEPARTID1(2) TYPE C, STUDNAME(60) TYPE C, END OF T_STD. DATA: WA TYPE T_STD. SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD INTO WA WHERE STUDID = '124'. WRITE:/ WA-DEPARTID1, WA-STUDNAME .
  • 29. • In structure instead of assigning data type and length ,we can also assign the database table and field name. Ex: TYPES: BEGIN OF T_STD, DEPARTID1 TYPE ZSTUD-DEPARTID1, STUDNAME TYPE ZSTUD-STUDNAME, END OF T_STD. DATA: WA TYPE T_STD. SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD INTO WA WHERE STUDID = '124'. WRITE:/ WA-DEPARTID1, WA-STUDNAME .
  • 30. • Also we can do it, by assigning data element directly. • Ex: TYPES: BEGIN OF T_STD, DEPARTID1 TYPE ZDEPID, STUDNAME TYPE ZSTUDNAME1, END OF T_STD. DATA: WA TYPE T_STD. SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD INTO WA WHERE STUDID = '124'. WRITE:/ WA-DEPARTID1, WA-STUDNAME .
  • 31. • Using parameter: Ex : TYPES: BEGIN OF T_STD, DEPARTID1 TYPE ZDEPID, STUDNAME TYPE ZSTUDNAME1, END OF T_STD. DATA: WA TYPE T_STD. PARAMETERS : STUID TYPE ZSTUD-STUDID. SELECT SINGLE DEPARTID1 STUDNAME FROM ZSTUD INTO WA WHERE STUDID = STUID. WRITE:/ WA-DEPARTID1, WA-STUDNAME .
  • 32. Select ---- EndSelect • Used to select multiple records directly from database table. Ex : DATA : WA TYPE MAKT. PARAMETERS : P_MATNR TYPE MAKT-MATNR. SELECT * FROM MAKT INTO WA WHERE MATNR = P_MATNR. WRITE : / WA-MATNR , WA-SPRAS, WA-MAKTX, WA-MAKTG. ENDSELECT. • It fetches records multiple time from database table. So it reduces the performance.
  • 33. Internal Table Ex: DATA : WA TYPE MAKT, ITAB TYPE TABLE OF MAKT. PARAMETERS : P_MATNR TYPE MAKT-MATNR. SELECT * FROM MAKT INTO TABLE ITAB WHERE MATNR = P_MATNR. LOOP AT ITAB INTO WA. WRITE : / WA-MATNR , WA-SPRAS, WA-MAKTX, WA-MAKTG. ENDLOOP. Note : if there is no composite key , then work area is sufficient to fetch data from database.
  • 34. Fetching data from 2 tables. • Ex : TYPES : BEGIN OF T_VBAP, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, END OF T_VBAP. DATA : ITAB TYPE TABLE OF T_VBAP, WA TYPE T_VBAP, WA1 TYPE MAKT. PARAMETERS : P_VBELN TYPE VBAP-VBELN. SELECT VBELN POSNR MATNR FROM VBAP INTO TABLE ITAB WHERE VBELN = P_VBELN. LOOP AT ITAB INTO WA. WRITE : / WA-VBELN , WA-POSNR , WA-MATNR. SELECT SINGLE * FROM MAKT INTO WA1 WHERE MATNR = WA-MATNR AND SPRAS = 'EN'. WRITE : WA1-MAKTX. ENDLOOP. Note: It reduces the performance . Because within the loop fetching data from database number of times.
  • 35. Inner JoinEx: TYPES : BEGIN OF T_STR, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, MAKTX TYPE MAKT-MAKTX, END OF T_STR. DATA : ITAB TYPE TABLE OF T_STR, WA TYPE T_STR. PARAMETERS : P_VBELN TYPE VBAP-VBELN. SELECT VBELN POSNR A~MATNR MAKTX INTO TABLE ITAB FROM VBAP AS A INNER JOIN MAKT AS B ON B~MATNR = A~MATNR WHERE VBELN = P_VBELN AND SPRAS = 'EN'. LOOP AT ITAB INTO WA. WRITE : / WA-VBELN , WA-POSNR , WA-MATNR , WA-MAKTX. ENDLOOP. Note : Whenever tables are less than or equal 3 go for inner join technique.
  • 36. For all entries in Ex : TYPES : BEGIN OF T_VBAP, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, END OF T_VBAP. TYPES : BEGIN OF T_MAKT, MATNR TYPE MAKT-MATNR, MAKTX TYPE MAKT-MAKTX, END OF T_MAKT. TYPES : BEGIN OF T_FINAL, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, MAKTX TYPE MAKT-MAKTX, END OF T_FINAL. DATA : WA TYPE T_VBAP, ITAB TYPE TABLE OF T_VBAP, WA1 TYPE T_MAKT, ITAB1 TYPE TABLE OF T_MAKT, WA2 TYPE T_FINAL, ITAB2 TYPE TABLE OF T_FINAL. PARAMETERS : P_VBELN TYPE VBAP-VBELN.
  • 37. START-OF-SELECTION. SELECT VBELN POSNR MATNR FROM VBAP INTO TABLE ITAB WHERE VBELN = P_VBELN . IF ITAB IS NOT INITIAL. SELECT MATNR MAKTX FROM MAKT INTO TABLE ITAB1 FOR ALL ENTRIES IN ITAB WHERE MATNR = ITAB-MATNR AND SPRAS = 'EN'. ENDIF. LOOP AT ITAB INTO WA. WA2-VBELN = WA-VBELN. WA2-POSNR = WA-POSNR. WA2-MATNR = WA-MATNR. CLEAR WA1. READ TABLE ITAB1 INTO WA1 WITH KEY MATNR = WA-MATNR. If sy-subrc = 0. WA2-MAKTX = WA1-MAKTX. Endif. APPEND WA2 TO ITAB2. ENDLOOP. LOOP AT ITAB2 INTO WA2. WRITE : / WA2-VBELN , WA2-POSNR , WA2-MATNR , WA2-MAKTX. ENDLOOP.
  • 38. • Note : 1. Check the for all entries table is not empty . 2. Write all key field in selection criteria. 3. Data type and length of for all entries matching field should be match for both the table.
  • 39. • Important : Read table. 1. Clear the work area before read the table. 2. After reading table use sy-subrc . 3. To improve the performance use Binary search in read statement. Ex : READ TABLE ITAB1 INTO WA1 WITH KEY MATNR = WA- MATNR binary search. * before the loop sort the internal table. sort itab1 by matnr.
  • 40. Different Types of Internal Table • Based on header line internal tables are classified into 2 types: • Header Line nothing but work area. 1. Internal table with header line . 2. Internal table without header line. • Internal table without header line Ex: Types : begin of stru, name(20) type c, age(2) type c, end of stru. Data: wa type stru, itab type table of stru.
  • 41. • Internal table with header line. Ex Types : begin of stru, name(20) type c, age(2) type c, end of stru. Data: itab type table of stru with header line. Itab-name = ‘Donald’. Itab-age = 25. Append itab. Loop at itab. write : / itab-name , itab-age. Endloop.
  • 42. • Based on sorting technique internal tables can divided 3 types. 1. Standard internal table. 2. Sorted internal table. 3. Hashed internal table. • By default any internal table is standard internal table. 1. Standard internal table. • This is follows linear search(one by one) algorithm. • Searching time is proportional to number of records. • Syntax: Data : <internal table > TYPE STANDARD TABLE OF <TB /STR name> WITH NON-UNIQUE KEY <key > WITH HEADER LINE. <optional>
  • 43. • Sorted internal tables : 1. This is follows binary search help. 2. It supports unique as well as no-unique key. 3. Syntax : Data : <internal table > TYPE SORTED TABLE OF <tab/str name> WITH <UNIQUE / non-unique > KEY <keyname> WITH HEADER LINE . <optional >
  • 44. • Hashed internal table. 1. There is no non-unique key. 2. Its follows index based search. 3. Syntax : Data : <internal table > TYPE HASHED TABLE OF <TB/STR NAME> WITH UNIQUE KEY <KEY> WITH HEADER LINE. <OPTIONAL>