Programming/ABAP

Modularization - Subroutine

_syd 2023. 7. 27. 00:37

Subroutine

모든 ABAP 프로그램에서 정의할 수 있고 모든 프로그램에서 호출할 수 있는 프로시저다.

서브루틴은 일반적으로 내부적으로 호출되며, local 에서 자주 사용되는 코드에 주로 사용된다. (global 하게 재사용하고 싶은 경우 Function module을 사용한다.)

Syntax

FORM <subroutine name> [<parameter>].

<Statement block>.

ENDFORM.

유형

  1. Internal
    • 호출되는 프로그램과 동일한 프로그램에 정의된 subroutine
    • 메인 ABAP 프로그램에서 선언된 모든 데이터 객체에 접근할 수 있다.
  2. External
    • 호출되는 동일한 프로그램에 정의된 서브루틴.
    • parameter 를 사용하거나 메모리의 공통 부분에 객체(data object)를 선언해야한다.

호출

Internal Subroutines

PERFORM <subroutine name> [<paramter>]

 

메인 프로그램에서 선언된 데이터를 사용 할 수 있다.

 

External Subroutines

PERFORM <subroutine>(<Program>) [<parameter>].

PERFORM <subroutine> (<Program>) [<parameter>] [IF FOUND].

PERFORM (<subroutine>) IN PROGRAM  (<Program>) [<parameter>] [IF FOUND].

PERFORM <index> OF <subroutine1> <subroutine2> <subroutine3> [<parameter>].

특징

  • 중첩 호출도 가능하다. ex) FORM ... ENDFORM 내의 PERFORM
  • 재귀 호출이 가능하다.

 

 

728x90