SAP ABAP Macro 사용 방법(아밥 매크로 정의 및 사용법)

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 편집기 화면은 매크로를 정의하고 사용하는 예제 입니다.

SAP ABAP Macro 사용 방법(아밥 매크로 정의 및 사용법) 1
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 프로그램의 실행 결과 화면입니다.

SAP ABAP Macro 사용 방법(아밥 매크로 정의 및 사용법) 2
  • operation” 매크로에서 연산을 수행하고, 그 결과를 result 변수에 넣고,
  • output” 매크로를 호출해서 결과를 출력하고 있습니다. 실제 출력은 “output” 매크로에서 처리되고 있습니다.

마무리

동일한 구문을 반복 처리해야 하는 경우 매크로 활용은 좋은 대안이 될 수 있습니다.

PERFORM의 서브루틴을 사용할지? DEFINE의 매크로를 사용할지? 그때 그때 상황에 맞게 활용해 보시기 바랍니다.





이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.

답글 남기기