Modularization Techniques: Subroutines with Example
Subroutines:
They are the local modularization techniques.
- The sub routines are used to define the reusable functions in the program.
- The ABAP statement 'PERFORM' is used to call the subroutines.
- The ABAP statement FORM and ENDFORM are used to define the subroutines.
- Subroutines are 2 types 1. Internal Subroutines 2.External Subroutines.
• The number of actual parameters should be similar to the number of formal parameters.
• The sub-routines definitions should not be nested (form within the form) but, the subroutine
can be called within the sub-routine.
Internal Subroutines: They are defined and called in the same program.
REPORT zvb_sub.
TYPES:BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
END OF ty_vbak.
PARAMETERS:p_vbeln TYPE vbak-vbeln.
DATA:wa_vbak TYPE ty_vbak,
it_vbak TYPE TABLE OF ty_vbak.
PERFORM get_data USING p_vbeln CHANGING it_vbak.
LOOP AT it_vbak INTO wa_vbak.
WRITE:/ wa_vbak-vbeln, 10 wa_vbak-erdat, 25 wa_vbak-ernam.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> P_VBELN
*& <-- IT_VBAK
*&---------------------------------------------------------------------*
FORM get_data USING pp_vbeln TYPE vbak-vbeln
CHANGING pt_vbak TYPE ztt_vbak. " Table type
SELECT vbeln erdat ernam
FROM vbak
INTO TABLE pt_vbak
WHERE vbeln = pp_vbeln.
ENDFORM.
External Subroutines: They are defined in one program and called in another program.
REPORT zvb_ext_sub.
TYPES:BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
END OF ty_vbak.
PARAMETERS:p_vbeln TYPE vbak-vbeln.
DATA:wa_vbak TYPE ty_vbak,
it_vbak TYPE TABLE OF ty_vbak.
***Calling External Subroutines get_data from prog ZVB_SUB
*PERFORM get_data(ZVB_SUB) USING p_vbeln CHANGING it_vbak.
PERFORM get_data IN PROGRAM zvb_sub USING p_vbeln CHANGING it_vbak IF FOUND .
LOOP AT it_vbak INTO wa_vbak.
WRITE:/ wa_vbak-vbeln, 10 wa_vbak-erdat, 25 wa_vbak-ernam.
ENDLOOP.
Comments
Post a Comment