SAP Memory와 ABAP Memory - ABAP Memory실습
SAP MEMORY는 파라미터 ID를 생성해야하는 반면
ABAP MEMORY를 사용하는 경우는 메모리 ID이름을 프로그램 수준에서 임의로 지정가능하다.
ABAP MEMORY로 데이터를 넘겨주기 위해,
EXPORT/IMPORT구문을 사용하고 동일한 파라미터 ID이름을 사용해야한다.
다른 프로그램에 데이터오브젝트(필드, 스트럭처, 인터널 테이블)를 넘겨주기 자주 사용한다.
다른 프로그램을 호출할 때 명령어(CALL TRANSACTION, SUBMIT)을 사용하면 내부세션이 생성되고 ABAP MEMORY에 잇는 데이터가 공유된다.
같은 윈도우(동일 내부세션)에서만 메모리 영역을 공유하므로 새창을 띄워서 작업할 경우 메모리 영역이 사라진다.
EXPORT OBJ1 …OBJN TO MEMORY ID KEY.
IMPORT OBJ… BOJN FROM MEMORY ID KEY.
Export 구문을 이용해서 데이터 오브젝트(필드, 스트럭처, 인터널 테이블)를 ABAP Memory에 로드할 수 있다.
FREE MEMORY [ID KEY]
ID KEY를 넣지 않으면 전체 메모리가 삭제되므로 주의가 필요하다!




z11_05에서 EXPORT로 인터널테이블 gt_emplist가 ABAP Memory의 KEY 'TEST_ID'로 저장됨.
z11_06에서 IMPORT로 KEY 'TEST_ID'로 찾아와서 GT_EMPLIST값 가져옴.
호출받은 프로그램이 종료되고 되돌아올 때. 호출받은 프로그램이 삭제되지 않고 비활성화된 상태. 그리고 메모리에 저장된 값들은 스택으로 옮겨진다.(최대9개까지)
LEAVE TO PROGRAM.
호출받은 프로그램이 실행을 종료하고 호출한 프그램으로 복귀 하지 않고,
호출받은 프로그램은 내부 세션에서 자신이 호출한 프로그램을 대체해 버리고, 호출한 프로그램메모리 값은 삭제한다.
LEAVE TO TRANSACTION
내부세션의 모든 스택을 삭제하고 새로운 내부 세션을 생성하여 트랜잭션을 호출. 그 결과 프로그램간에 데이터를 넘겨주지 못함.
※ SAP MEMORY는 여전히 데이터 전달된다.