ABAP 프로그램에서 동일한 구문을 반복 사용하는 경우 해당 구문을 매크로(Macro)로 정의해서 사용하면 편리합니다.
매크로를 잘 활용하면 불필요한 ABAP 구문을 많이 줄일 수 있습니다.
ABAP 매크로를 사용할 때 장점이 많지만 주의해야 할 내용도 있습니다. 주의해야 할 부분은 아래 단락의 내용을 참고하시기 바랍니다.
이번 글에서는 SAP ABAP Macro 사용 방법(아밥 매크로 정의 및 사용법)에 대해 알아보겠습니다.
ABAP Macro를 사용하기 전에 알아야 할 내용들
▶ ABAP에서 매크로(Macro)를 정의하고 사용하기 전에 몇 가지 알고 있어야 하는 내용들 입니다.
- 매크로는 정의된 프로그램 내에서만 사용이 가능합니다.
- 매크로 정의는 매크로가 프로그램에서 사용되기 전에 먼저 정의가 되어 있어야 합니다. 그렇지 않은 경우 Syntax error를 발생시킵니다.
- 플레이스홀더(Placeholders)는 최대 9개까지 사용할 수 있습니다. 즉, 매개변수를 9개까지 지정할 수 있다는 의미입니다.
- 매크로 정의에서 사용하는 플레이스홀더(Placeholders)와 매크로를 호출하는 플레이스홀더(Placeholders)의 개수는 서로 일치해야 합니다.
- 매크로에 중단점(Breakpoints)을 삽입할 수 없습니다. 따라서 매크로 문은 ABAP 디버거에서 개별 단계를 수행할 수 없습니다.
- ABAP 디버거에서 개별 단계를 수행할 수 없으므로 오류를 분석하기 매우 어렵습니다. 따라서 매크로는 비교적 단순 명료한 구문으로 작성하는 것이 좋습니다.
- 동일한 이름으로 매크로를 정의할 경우 마지막에 정의한 매크로가 사용됩니다. 앞의 매크로 정의는 덮어쓰기 됩니다.
ABAP MACRO 정의 및 사용 방법
▶ ABAP에서 매크로를 정의하는 방법은 DEFINE ~ END-OF-DEFINITION 문으로 정의 합니다.
▼ 아래 ABAP 편집기 화면은 매크로를 정의하고 사용하는 예제 입니다.
REPORT YTEST0001 . DATA: result TYPE i, n1 TYPE i VALUE 5, n2 TYPE i VALUE 6. *- operaion 매크로 정의 DEFINE operation. result = &1 &2 &3. output &1 &2 &3 result. END-OF-DEFINITION. *- output 매크로 정의 DEFINE output. WRITE: / ‘The result of &1 &2 &3 is’, &4. END-OF-DEFINITION. operation 4 + 3. operation 2 ** 7. operation n2 – n1. |
- “operation“이라는 매크로와 “output“이라는 매크로를 정의하고 있습니다.
- “operation” 매크로에는 3개의 플레이스홀더(Placeholders)를 사용하고 있습니다. (&1, &2, &3)
- “output” 매크로에는 4개의 플레이스홀더(Placeholders)를 사용하고 있습니다. (&1, &2, &3, &4)
▼ 위의 ABAP 프로그램의 실행 결과 화면입니다.
- “operation” 매크로에서 연산을 수행하고, 그 결과를 result 변수에 넣고,
- “output” 매크로를 호출해서 결과를 출력하고 있습니다. 실제 출력은 “output” 매크로에서 처리되고 있습니다.
마무리
동일한 구문을 반복 처리해야 하는 경우 매크로 활용은 좋은 대안이 될 수 있습니다.
PERFORM의 서브루틴을 사용할지? DEFINE의 매크로를 사용할지? 그때 그때 상황에 맞게 활용해 보시기 바랍니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.