1. 매개변수 없이 호출

2. 매개변수 있는 서브루틴

3. CHAING으로 값변경

=> 이때는 에러남! gv_msg 위치가 애매한 것 같다.

1) 내부 Subroutine 호출
DATA: gv_val TYPE c LENGTH 10 VALUE 'Enjoy',
gv_val2 TYPE c LENGTH 10 VALUE 'ABAP',
gv_val3 TYPE c LENGTH 20.
PERFORM concate_string USING gv_val gv_val2
CHANGING gv_val3.
FORM concate_string USING VALUE(p_val1) VALUE(p_val2)
CHANGING VALUE(p_val3).
CONCATENATE p_val1 p_val2 INTO p_val3 SEPARATED BY space.
PERFORM write_d USING p_val3.
ENDFORM.
FORM write_d USING VALUE(p_val).
WRITE: / p_val.
ENDFORM.
=> Enjoy ABAP 출력됨
2) 외부 Subroutine 호출

방금 구현한 내부 concat_string이라는 함수를 사용하자.

=> External CALL이 출력된다..! 대박ㅋㅋ

=> 출력 Dynamic CALL
- 외부 프로그램의 서브루틴을 호출할 경우 동적으로 지정할 수도 있다! (내부 프로그램도 같은 형태로 사용가능함)
- 동적구문을 사용할 때는 프로그램 이름과 서브루틴 이름을 반, 드, 시.대문자로 지정해야하며, 예제에서는 translate명령으로 대문자로 변환했다.
3) LIST를 이용한 Subroutine 호출

=> write가 잘된다.
LIST 를 이용해 subroutine을 출력하는 방식은, 오직 Internal Subroutine에만 가능하다 => 파라미터를 사용할 수 없는 단점이 있음
'SAP' 카테고리의 다른 글
| easy abap 20. subroutine 종료 & 분기조건문 (0) | 2025.05.10 |
|---|---|
| easy abap 19. ABAP 내의 순환반복문 3가지 (0) | 2025.05.10 |
| easy abap 17. 파라미터 타입정의, 구조체, 인터널테이블, tables구문 (0) | 2025.05.10 |
| easy abap 16. subroutine parameter- call by value, call by reference, call by value and result (0) | 2025.05.10 |
| easy abap 15. 효율적인 SQL 구문 작성 (0) | 2025.05.09 |