1 / 55

ABAP Chapter 5

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.

bedros
Download Presentation

ABAP Chapter 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 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 a4 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. 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 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 Group : ZGRP00 Function Module : Z_CAL01 Function Group

  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.

More Related