오늘은 자주 쓰이는 ABAP MACRO인 DEFINE 구문에 대해서 포스팅 해보겠슴니당.
일단 제가 쓴 구문 예시를 보여드릴게용.


이런식으로 정의를 한 후, 정의한 메크로를 호출하여 사용할 땐
__SET_COLTEXT : '자재코드'.
__MODIFY_CELL : 'MATNR' LS_MOD_CELL_VALUE.
이런식으로 쓰인답니당.
설명을 좀 해드리자면
__MODIFY_CELL : 'MATNR' LS_MOD_CELL_VALUE.
제가 프로그램에 선언한 __MODIFY_CELL이라는 Define 메크로를 호출.
그다음에 &1 &2에 들어갈 값을 연달아서 넣어주면 됩니다.
제 예시에서는 'MATNR'과 LS_MOD_CELL_VALUE값을 넣었는데용
그러면 &1 자리에 'MANTR'이 &2 자리에는 LS_MOD_CELL_VALUE값이 들어가서 저 로직이 실행됩니다.
DEFINE _WRITE.
WRITE &1 && "는 배고프다."
END-OF-DEFINITION.
_WRITE 철수.
_WRITE : 영희,
겨울이,
하밥퍼.
DEFINE 문은 로컬이나 글로벌( include top)에 선언할 수있으며
DEFINE ****.
~~
END-OF-DEFINITION.
이런 구조로 되어있습니다.
****자리에는 제가 이름을 지어주면 되는데용
개발자의 네이밍 자유를 보여주면 되지만 보통 매크로와 같은 경우 앞에 _ 언더바를 넣어줍니당.
메크로 명령어인지 아닌지 구분하기 쉽게 하려는 것 같아용
예시처럼 : 콜론을 사용하면 명령어 하나만 쓰고 이어서 계속 쓸 수있어용..
(이건 DEFINE문 뿐만 아니라 모두 해당)
여기서 &1 &2 &3 은 메크로에서 변수값을 받는 파라미터라고 보시면 됩니당.
낄낄.. 9개까지 사용할 수 있어용
&1 &2 &3 &4 &5 &6 &7 &8 &9
반복되는 구문을 깔끔하게 정리할 수 있는 장점이 있슴니당.
이런식으로 같은 구문을 여러 번 사용해야한다면 Macro를 선언하여 사용하세유
다만 유의할점!!!
단순한 코딩 반복만 사용하도록 하십숑
왜냐!!
서브루틴과 달리(=Perform 문)
디버깅이 안되거든용..
메크로는 프로그램이 실행될때 이미 실행되어져있고 &1이라는 구멍에
단어를 던져넣는? 방식이라 디버깅이 먹히지 않는 거라고 하더라구용?
보통 디버깅을 하면 F5를 눌러가며 한줄 한줄 읽잖슴까?
서브 루틴 또한 PERFORM문 안으로 들어가서 한줄한줄 실행시키는데
DEFINE MACRO는 이미 실행되어져 있는 상태라 디버깅을 못한다구 했슴니댱.
디파인 문 설명 끗~

이제 주말잉께 놀러가야징

'밥린이의 아밥TIP' 카테고리의 다른 글
[율밥퍼] SAP ABAP - T code 정리 (0) | 2023.09.19 |
---|---|
[율밥퍼] SAP ABAP - ADD_PROTOCOL_ENTRY(프로토콜 - Data Changed Method) (0) | 2023.09.18 |
[율밥퍼] SAP ABAP- ALV HANDLE_ON_F4 (0) | 2023.09.14 |
[율밥퍼] SAP ABAP - ALV HANDLE_DOUBLE_CLICK (0) | 2023.09.13 |
[율밥퍼] SAP ABAP - ALV HANDLE_HOTSPOT(Feat. Parameter ID 찾기) (0) | 2023.09.12 |