Presentation is loading. Please wait.

Presentation is loading. Please wait.

ABAP Chapter 5 Modularization Catch Statement. Modularization.

Similar presentations


Presentation on theme: "ABAP Chapter 5 Modularization Catch Statement. Modularization."— Presentation transcript:

1 ABAP Chapter 5 Modularization Catch Statement

2 Modularization

3 Internal Subroutine Call External Subroutine Call Function Module

4 Subroutine START-OF-SELECTION. Perfrom routine1. Perform routine2. Form routine1. select * from customers into table tab. Endform. Form routine2. loop at tab. write: / tab-id,tab-name. endloop. Endform. …

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 ….. ENDFORM.

7 Call by Value a1 Memory Space(Subroutine) f1 Copy

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 Memory Space(Subroutine) f3 Address Passing

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 a4 Memory Space(Subroutine) f4 Copy

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. EXIT. tmp = 99. 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 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 FUNCTION Z_CAL01. if number1 > 9 and number2 > 9. raise invalidnumber. else. result = number1 ** number2. endif. ENDFUNCTION. 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. ….. VS

36 Optional ABAP Program Function Module

37 Structure in Function Module

38 Example : Structure

39

40 Internal Table in Function Module

41 Example : Internal Table

42

43 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 Syntax Catch system-exceptions =.. Endcatch. if sy-subrc =.... endif. CATCH Statement

49 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. CATCH Error Type

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


Download ppt "ABAP Chapter 5 Modularization Catch Statement. Modularization."

Similar presentations


Ads by Google