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.
 Note:
• 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-vbeln10 wa_vbak-erdat25 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-vbeln10 wa_vbak-erdat25 wa_vbak-ernam.
ENDLOOP.


Comments

Popular posts from this blog

CDS Views: Table Functions with Example

Passing Dynamic Variables to SO10 TEXT

Adobe Form/PDF Form Introduction