ABAP Chapter 5
 Modularization
 Catch Statement
Modularization
Modularization
 Internal Subroutine
Call
 External Subroutine
Call
 Function Module
Subroutine
START-OF-SELECTION.
Perfrom routine1.
Perform routine2.
Perform routine2.
Form routine1.
select * from customer...
Modularization
 Avoid redundancy
 Make your program easy to
read & improve their structure
 Re-use Program components
Calling and Defining SubroutinesCalling and Defining Subroutines
REPORT ztest.
* Global Data
TABLES customers.
DATA tmp ty...
Call by Value
a1
Memory Space(Subroutine)
f1
Copy
Call by ValueCall by Value
Data: a1,a2.
a1 = ‘A’.
a2 = ‘A’.
PERFORM routine1 USING a1 a2.
.…...
FORM routine1 USING VALUE(...
Call by Reference
a3
Memory Space(Subroutine)
f3
Address Passing
Call by ReferenceCall by Reference
Data: a3.
a3 = ‘A’.
PERFORM routine2 USING a3.
.…...
FORM routine2 USING f3.
f3 = ‘X’.
...
Call by Value and Result
a4
Memory Space(Subroutine)
f4
CopyCopy
Call by Value and ResultCall by Value and Result
a4,a5.
A’.
A’.
RM routine3 USING a4 a5.
routine3 CHANGING VALUE(f4) f5. “...
Passing Structure as ParametersPassing Structure as Parameters
TABLES sflight.
SELECT * FROM sflight.
PERFORM subproc USIN...
Passing Internal Table as ParametersPassing Internal Table as Parameters
TA: tab LIKE sflight OCCURS 0 WITH HEADER L
FORM ...
Passing Internal Table as ParametersPassing Internal Table as Parameters
FORM sub TABLES tab1 STRUCTURE tab.
LOOP AT tab1....
External SubroutinesExternal Subroutines
REPORT RSAAA10F.
TABLES: sflight.
…..
PERFORM cal(RSAAA10B).
REPORT RSAAA10B.
TAB...
EXIT StatementEXIT Statement
DATA tmp TYPE I.
tmp = 4.
PERFORM a.
WRITE tmp.
FORM a.
EXIT.
tmp = 99.
ENDFORM.
STOP StatementSTOP Statement
DATA tmp TYPE I.
START-OF-SELECTION.
tmp = 4.
PERFORM a.
WRITE tmp.
END-OF-SELECTION.
tmp = 0...
Function Module
Function Module
 Function Group
 Function Library
- Admin
- Import/Export Parameter
- Source Code
- Main Program
- Docum...
Function Group
 When you create a function
module, you must assign it to
function group
 The function group is the main
...
Function Group
 is a container for function
modules
 When a function module is
called,the entire function group is
loade...
Function Group : SE37
Function Group : SE80
Function Module
 is a code that can be called from
any ABAP program,therefore
making it a globally accessible
object
 AB...
Function Module : SE37
Function Module
Function Module : Source CodeFunction Module : Source Code
FUNCTION Z_FMTEST.
result = number1 ** number2.
ENDFUNCTION.
Program Example IProgram Example I
REPORT ztest.
PARAMETERS: no1 TYPE I,
no2 TYPE I.
DATA result TYPE I.
START-OF-SELECTIO...
Exercise : Function Module
?
ABAP Program
Function Module
EXCEPTIONS
Function ModuleFunction Module
Function Z_CAL01.
if number1 > 9 and number2 > 9.
raise invalidnumber.
else.
result = numbe...
Example II : ExceptionsExample II : Exceptions
REPORT ztest.
PARAMETERS: no1 TYPE I,
no2 TYPE I.
DATA result TYPE I.
START...
Exercise : Exceptions
?
ABAP Program
Function Module
EXCEPTIONS VS AT SELECTION-SCREEN
NCTION Z_CAL01.
number1 > 9 and number2 > 9.
raise invalidnumber.
lse.
result = number1 ...
Optional
ABAP Program
Function Module
Structure in Function Module
Example : Structure
Example : Structure
Internal Table in Function Module
Example : Internal Table
Example : Internal Table
Function Group
Function Group : ZGRP00
Function Module : Z_FMTEST
Function Module : Z_CAL01
Function Group
Function Module in Function
Group
Exercise
 Display current month name
using function module
Catch Statement
•Syntax
Catch system-exceptions <error type> = <n>.
<ABAP statement – generate runtime error> .
Endcatch.
if sy-subrc = <n...
Error class
•Catch system-exceptions conversion_errors
ingle error
•Catch system-exceptions convt_no_number
All catchable ...
CATCH StatementCATCH Statement
eport ztest.
Data num type I.
atch system-exceptions conversion_errors = 1.”oth
Move ‘abc’ ...
CATCH StatementCATCH Statement
Report ztest.
Data num type I.
Catch system-exceptions others = 1.
Move ‘abc’ to num.
Endca...
CATCH StatementCATCH Statement
Report ztest.
PARAMETERS: NUM1 TYPE I,
NUM2 TYPE I.
DATA RESULT TYPE I.
START-OF-SELECTION....
CATCH StatementCATCH Statement
Report ztest.
PARAMETERS: NUM1 TYPE I,
NUM2 TYPE I.
DATA RESULT TYPE I.
START-OF-SELECTION....
CATCH in Function Module
Function Z_CAL.
if number1 > 9 and number2 > 9.
raise invalidnumber.
else.
result = number1 ** nu...
ABAP Practice
Upcoming SlideShare
Loading in …5
×

Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted copy 2012-08-25)

565 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
565
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted copy 2012-08-25)

  1. 1. ABAP Chapter 5  Modularization  Catch Statement
  2. 2. Modularization
  3. 3. Modularization  Internal Subroutine Call  External Subroutine Call  Function Module
  4. 4. Subroutine START-OF-SELECTION. Perfrom routine1. Perform routine2. Perform routine2. Form routine1. select * from customers into table tab. Endform. Form routine2. loop at tab. write: / tab-id,tab-name. endloop. Endform. …
  5. 5. Modularization  Avoid redundancy  Make your program easy to read & improve their structure  Re-use Program components
  6. 6. Calling and Defining SubroutinesCalling 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 ….. ENDFORM.
  7. 7. Call by Value a1 Memory Space(Subroutine) f1 Copy
  8. 8. Call by ValueCall 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. 9. Call by Reference a3 Memory Space(Subroutine) f3 Address Passing
  10. 10. Call by ReferenceCall by Reference Data: a3. a3 = ‘A’. PERFORM routine2 USING a3. .…... FORM routine2 USING f3. f3 = ‘X’. ENDFORM.
  11. 11. Call by Value and Result a4 Memory Space(Subroutine) f4 CopyCopy
  12. 12. Call by Value and ResultCall by Value and Result a4,a5. A’. A’. RM routine3 USING a4 a5. routine3 CHANGING VALUE(f4) f5. “f5 : call by ref ‘X’. ‘X’. ORM.
  13. 13. Passing Structure as ParametersPassing Structure as Parameters TABLES sflight. SELECT * FROM sflight. PERFORM subproc USING sflight. ENDSELECT. FORM subproc USING rec LIKE sflight. WRITE: / rec-carrid. ENDFORM.
  14. 14. Passing Internal Table as ParametersPassing Internal Table as Parameters TA: tab LIKE sflight OCCURS 0 WITH HEADER L FORM sub TABLES tab.
  15. 15. Passing Internal Table as ParametersPassing Internal Table as Parameters FORM sub TABLES tab1 STRUCTURE tab. LOOP AT tab1. WRITE: / tab1-carrid. ENDLOOP. ENDFORM.
  16. 16. External SubroutinesExternal Subroutines REPORT RSAAA10F. TABLES: sflight. ….. PERFORM cal(RSAAA10B). REPORT RSAAA10B. TABLES sflight. ….. FORM cal. ….. ENDFORM.
  17. 17. EXIT StatementEXIT Statement DATA tmp TYPE I. tmp = 4. PERFORM a. WRITE tmp. FORM a. EXIT. tmp = 99. ENDFORM.
  18. 18. STOP StatementSTOP 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. 19. Function Module
  20. 20. Function Module  Function Group  Function Library - Admin - Import/Export Parameter - Source Code - Main Program - Documentation
  21. 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
  22. 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
  23. 23. Function Group : SE37
  24. 24. Function Group : SE80
  25. 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
  26. 26. Function Module : SE37
  27. 27. Function Module
  28. 28. Function Module : Source CodeFunction Module : Source Code FUNCTION Z_FMTEST. result = number1 ** number2. ENDFUNCTION.
  29. 29. Program Example IProgram 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. 30. Exercise : Function Module ? ABAP Program Function Module
  31. 31. EXCEPTIONS
  32. 32. Function ModuleFunction Module Function Z_CAL01. if number1 > 9 and number2 > 9. raise invalidnumber. else. result = number1 ** number2. endif. ENDFUNCTION.
  33. 33. Example II : ExceptionsExample 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. 34. Exercise : Exceptions ? ABAP Program Function Module
  35. 35. EXCEPTIONS VS AT SELECTION-SCREEN NCTION Z_CAL01. number1 > 9 and number2 > 9. raise invalidnumber. lse. result = number1 ** number2. ndif. DFUNCTION. 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 < endif. START-OF-SELECTION. CALL FUNCTION ‘Z_CAL01’. ….. VS
  36. 36. Optional ABAP Program Function Module
  37. 37. Structure in Function Module
  38. 38. Example : Structure
  39. 39. Example : Structure
  40. 40. Internal Table in Function Module
  41. 41. Example : Internal Table
  42. 42. Example : Internal Table
  43. 43. Function Group Function Group : ZGRP00 Function Module : Z_FMTEST Function Module : Z_CAL01
  44. 44. Function Group
  45. 45. Function Module in Function Group
  46. 46. Exercise  Display current month name using function module
  47. 47. Catch Statement
  48. 48. •Syntax Catch system-exceptions <error type> = <n>. <ABAP statement – generate runtime error> . Endcatch. if sy-subrc = <n>. ... endif. CATCH StatementCATCH Statement
  49. 49. Error class •Catch system-exceptions conversion_errors ingle error •Catch system-exceptions convt_no_number All catchable runtime error •Catch system-exceptions others = 1. CATCH Error TypeCATCH Error Type
  50. 50. CATCH StatementCATCH Statement eport ztest. Data num type I. atch system-exceptions conversion_errors = 1.”oth Move ‘abc’ to num. “runtime error: convt_no_numbe ndcatch. f sy-subrc = 1. Write: / ‘Assign wrong data type to variable: num’ ndif.
  51. 51. CATCH StatementCATCH 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. 52. CATCH StatementCATCH 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. 53. CATCH StatementCATCH 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. 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. 55. ABAP Practice

×