SAP ABAP 프로그램을 개발할 때 두 프로그램 간에 데이터(인터널테이블 및 변수 값)를 넘겨 주거나 받아서 처리하는 프로그램을 개발해야 할 때가 있습니다.
A라는 프로그램에서 B라는 프로그램을 Call Transaction으로 호출해서 사용할 때 A 프로그램의 인터널테이블(Internal Table)이나 변수 값을 B 프로그램으로 넘겨 주고, B 프로그램에서는 이렇게 넘겨 받은 인터널테이블이나 변수 값을 그대로 가져와서 사용하는 방법에 대해 알 필요가 있습니다.
이번 글에서는 SAP ABAP에서 두 프로그램 간에 인터널테이블 및 변수 값을 주고 받기 방법 각각에 대해 설명해 보겠습니다.
ABAP에서 EXPORT를 사용하여 인터널테이블 또는 변수 값을 넘겨 주기
▶ 인터널 테이블이나 변수 값을 다른 프로그램으로 넘겨 줄 때 EXPORT 키워드를 사용해서 처리할 수 있습니다.
DATA: GV_AUFNR LIKE AFPO-AUFNR,
GV_MATNR LIKE AFPO-MATNR.
GV_AUFNR = ‘…….’.
GV_MATNR = ‘…….’.
* 넘길 변수 값을 SAP 메모리에 등록
EXPORT GV_AUFNR GV_MATNR TO MEMORY ID ‘ZMEM001’.
CALL TRANSACTION ‘ZPPM0010’. “트렌잭션 실행
- MEMORY ID는 임의의 이름으로 지정하면 됩니다.
- IMPORT 하는 쪽에서 동일한 MEMORY ID 이름만 지정해서 사용하면 됩니다.
- GV_AUFNR, GV_MATNR 두 개의 변수 값이 ‘ZMEM001’라는 MEMORY ID 이름으로 EXPORT 하게 됩니다.
ABAP에서 IMPORT를 사용하여 인터널테이블 또는 변수 값을 받기
▶ 다른 프로그램에서 넘겨 준 인터널 테이블이나 변수 값을 가져올 때 IMPORT 키워드를 사용해서 처리할 수 있습니다.
DATA: GV_AUFNR LIKE AFPO-AUFNR,
GV_MATNR LIKE AFPO-MATNR.
* SAP 메모리에 있는 값을 가져옴 (프로그램이 실행될 때 바로 가져오기 위해 PBO MODULE에 구현합니다.)
MODULE GET_MEMORY OUTPUT.
IMPORT GV_AUFNR GV_MATNR FROM MEMORY ID ‘ZMEM001’.
ENDMODULE. “GET_MEMORY OUTPUT
- ‘ZMEM001’라는 MEMORY ID에서 GV_AUFNR, GV_MATNR 두 개의 변수 값을 가져옵니다.
ABAP에서 인터널테이블을 EXPORT, IMPORT 하는 방법
▶ ABAP에서 인터널테이블도 동일하게 EXPORT, IMPORT를 사용하여 프로그램 간에 데이터를 주고 받을 수 있습니다.
- EXPORT (ITAB) TO MEMORY ID ‘ZMEM002’.
- IMPORT ITAB FROM MEMORY ID ‘ZMEM002’.
결론
ABAP 프로그램에서 MEMORY ID를 사용하여 쉽게 프로그램 간에 데이터(인터널테이블 및 변수 값)를 주고 받을 수 있습니다.
MEMORY ID는 여러 프로그램에서 활용해서 사용할 수 있습니다.
MEMORY ID에 저장된 내용은 로컬 세션이 종료될 때까지 계속 유지 됩니다.
참고로 SET/GET PARAMETER를 이용한 프로그램간 데이터를 주고 받는 방법도 활용해 볼 수 있습니다. 관련해서 SAP ABAP에서 매개변수(Parameter) ID 활용 방법 글을 참고하시면 됩니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^