Download presentation
Presentation is loading. Please wait.
1
ABAP Chapter 5 Modularization Catch Statement
2
Modularization
3
Modularization Internal Subroutine Call External Subroutine Call
Function Module
4
Subroutine START-OF-SELECTION. Perfrom routine1. Perform routine2.
select * from customers into table tab. Endform. Form routine2. loop at tab. write: / tab-id,tab-name. endloop. …
5
Modularization Avoid redundancy
Make your program easy to read & improve their structure Re-use Program components
6
Calling and Defining Subroutines
REPORT ztest. * Global Data TABLES customers. DATA tmp type i. * Subroutine Calls PERFORM routine1. PERFORM routine2. * Subroutine FORM routine1. DATA tmp1 type p. “Local data write tmp. ENDFORM. FORM routine2. DATA tmp2(10). “Local data …..
7
Call by Value a1 Copy f1 Memory Space(Subroutine)
8
Call by Value Data: a1,a2. a1 = ‘A’. a2 = ‘A’.
PERFORM routine1 USING a1 a2. .…... FORM routine1 USING VALUE(f1) VALUE(f2). f1 = ‘X’. f2 = ‘X’. ENDFORM.
9
Call by Reference a3 Address Passing f3 Memory Space(Subroutine)
10
Call by Reference Data: a3. a3 = ‘A’. PERFORM routine2 USING a3. .…...
FORM routine2 USING f3. f3 = ‘X’. ENDFORM.
11
Call by Value and Result
Copy Copy f4 Memory Space(Subroutine)
12
Call by Value and Result
Data: a4,a5. a4 = ‘A’. a5 = ‘A’. PERFORM routine3 USING a4 a5. .…... FORM routine3 CHANGING VALUE(f4) f5. “f5 : call by reference f4 = ‘X’. f5 = ‘X’. ENDFORM.
13
Passing Structure as Parameters
TABLES sflight. SELECT * FROM sflight. PERFORM subproc USING sflight. ENDSELECT. FORM subproc USING rec LIKE sflight. WRITE: / rec-carrid. ENDFORM.
14
Passing Internal Table as Parameters
DATA: tab LIKE sflight OCCURS 0 WITH HEADER LINE. … PERFORM sub TABLES tab.
15
Passing Internal Table as Parameters
FORM sub TABLES tab1 STRUCTURE tab. LOOP AT tab1. WRITE: / tab1-carrid. ENDLOOP. ENDFORM.
16
External Subroutines REPORT RSAAA10F. TABLES: sflight. …..
PERFORM cal(RSAAA10B). REPORT RSAAA10B. TABLES sflight. FORM cal. ENDFORM.
17
EXIT Statement DATA tmp TYPE I. tmp = 4. PERFORM a. WRITE tmp. FORM a.
ENDFORM.
18
STOP Statement DATA tmp TYPE I. START-OF-SELECTION. tmp = 4.
PERFORM a. WRITE tmp. END-OF-SELECTION. tmp = 0. write tmp. FORM a. STOP. “go to END-OF-SELECTION tmp = 99. ENDFORM.
19
Function Module
20
Function Module Function Group Function Library - Admin
- Import/Export Parameter - Source Code - Main Program - Documentation
21
Function Group When you create a function module, you must assign it to function group The function group is the main program in which a function module is embedded The function group is a program type F,and not executable The entire function group is loaded in a program the first time that you call a function module that belongs to it
22
Function Group is a container for function modules
When a function module is called,the entire function group is loaded into the session of the program Function group is used to define global data for function modules A DATA statement in the global memory of a function group is shared by all the function modules that belong to that function group
23
Function Group : SE37
24
Function Group : SE80
25
Function Module is a code that can be called from any ABAP program,therefore making it a globally accessible object ABAP program pass data to function module from import parameters or internal tables Function module receives data from a program,process the information in its own code, and then sends back information in the export parameters or internal tables
26
Function Module : SE37
27
Function Module
28
Function Module : Source Code
FUNCTION Z_FMTEST. result = number1 ** number2. ENDFUNCTION.
29
Program Example I REPORT ztest. PARAMETERS: no1 TYPE I, no2 TYPE I.
DATA result TYPE I. START-OF-SELECTION. CALL FUNCTION ‘Z_FMTEST’ EXPORTING number1 = no1 number2 = no2 IMPORTING result = result. write: / result.
30
Exercise : Function Module
ABAP Program Function Module ?
31
EXCEPTIONS
32
Function Module Function Z_CAL01.
if number1 > 9 and number2 > 9. raise invalidnumber. else. result = number1 ** number2. endif. ENDFUNCTION.
33
Example II : Exceptions
REPORT ztest. PARAMETERS: no1 TYPE I, no2 TYPE I. DATA result TYPE I. START-OF-SELECTION. CALL FUNCTION ‘Z_CAL01’ EXPORTING number1 = no1 number2 = no2 IMPORTING result = result EXCEPTIONS invalidnumber = 1. IF sy-subrc <> 0. write: / ‘Please enter number < 10’. ELSE. write: / result. ENDIF.
34
Exercise : Exceptions ABAP Program Function Module ?
35
EXCEPTIONS VS AT SELECTION-SCREEN
REPORT ztest. Parameters: no1 type i, no2 type i. At selection-screen if no1 > 9 and no2 > 9. message e000(38) with ‘Please enter no < 10’. endif. START-OF-SELECTION. CALL FUNCTION ‘Z_CAL01’. ….. FUNCTION Z_CAL01. if number1 > 9 and number2 > 9. raise invalidnumber. else. result = number1 ** number2. endif. ENDFUNCTION. VS
36
Optional Function Module ABAP Program
37
Structure in Function Module
38
Example : Structure
39
Example : Structure
40
Internal Table in Function Module
41
Example : Internal Table
42
Example : Internal Table
43
Function Module : Z_FMTEST Function Module : Z_CAL01
Function Group Function Group : ZGRP00 Function Module : Z_FMTEST Function Module : Z_CAL01
44
Function Group
45
Function Module in Function Group
46
Exercise Display current month name using function module
47
Catch Statement
48
CATCH Statement Syntax
Catch system-exceptions <error type> = <n>. <ABAP statement – generate runtime error> . Endcatch. if sy-subrc = <n>. ... endif.
49
CATCH Error Type Error class Catch system-exceptions conversion_errors = 1. Single error Catch system-exceptions convt_no_number = 1. All catchable runtime error Catch system-exceptions others = 1.
50
CATCH Statement Report ztest. Data num type I.
Catch system-exceptions conversion_errors = 1.”others Move ‘abc’ to num. “runtime error: convt_no_number Endcatch. If sy-subrc = 1. Write: / ‘Assign wrong data type to variable: num’. Endif.
51
CATCH Statement Report ztest. Data num type I.
Catch system-exceptions others = 1. Move ‘abc’ to num. Endcatch. If sy-subrc = 1. Write: / ‘Assign wrong data type to variable: num’. Endif.
52
CATCH Statement Report ztest. PARAMETERS: NUM1 TYPE I, NUM2 TYPE I.
DATA RESULT TYPE I. START-OF-SELECTION. CATCH SYSTEM-EXCEPTIONS COMPUTE_INT_ZERODIVIDE = 1. RESULT = NUM1 / NUM2. ENDCATCH. IF SY-SUBRC = 1. WRITE: /'Divide by zero'. ELSE. WRITE: / RESULT. ENDIF.
53
CATCH Statement Report ztest. PARAMETERS: NUM1 TYPE I, NUM2 TYPE I.
DATA RESULT TYPE I. START-OF-SELECTION. CATCH SYSTEM-EXCEPTIONS OTHERS = 1. RESULT = NUM1 / NUM2. ENDCATCH. IF SY-SUBRC = 1. WRITE: /'Divide by zero'. ELSE. WRITE: / RESULT. ENDIF.
54
CATCH in Function Module
Function Z_CAL. if number1 > 9 and number2 > 9. raise invalidnumber. else. result = number1 ** number2. endif. ENDFUNCTION. Function Z_CAL. CATCH SYSTEM-EXCEPTIONS OTHERS = 1. RESULT = NUMBER1 ** NUMBER2. ENDCATCH. IF SY-SUBRC = 1. RAISE invalidnumber. ENDIF. ENDFUNCTION.
55
ABAP Practice
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.