ABAP 개발을 하면서 가장 편하다고 생각했던게 프로그램간 파라메터를 전달해서 다른 프로그램을 현재 개발하는 프로그램에 서브 프로그램으로 사용 할 수 있다는 점이었다. 그래서 다른 프로그램이지만 상세화면을 보여주는 등 다양한 형태에서 추가적인 개발을 하지 않고 상세화면을 구성할 수 있다.
예를 들자면 CBO 프로그램에서 IW52 라는 Notification 상세화면으로 바로 들어가는 기능을 만들 수 있다. ABAP 코드에서 Call transaction 과 submit 을 이용 하여 다른 프로그램으로 이동할 수 있으며, 각각 파라메터를 전달하는 방식은 추후에 포스팅을 하도록 하겠다.
오늘은 이러한 프로그램 간 이동을 하면서 이전 프로그램의 Local Variable 을 조회하는 내용을 찾아보았다. 나와 같이 이미 궁금해하는 사람이 있을 것 같아서 구글을 뒤지는 도중 필드 심볼을 이용한 코드를 만든 포스트를 확인하였다.
Source : Use ABAP to Access ANY DATA In Memory
다른 프로그램(정확히는 메모리에 올라와 있는 프로그램)의 변수의 접근을 하기 위해서는 (프로그램명)변수 형태를 사용하면 된다는 것이다. 다른 프로그램의 Perform 문을 사용하듯이(문법은 반대로이지만) 하면 된다. 실제로 테스트를 해본 결과 스택상에 올라온 프로그램의 로컬 변수의 값을 접근 할 수 있었다. ( 아래 디버그를 통해서 변수에 접근이 가능함을 확인 할 수 있다.)
상위 프로그램의 롱텍스트 변수에 접근을 하였다.
Internal Table 에 접근이 가능하고 필드 심볼을 이용한 데이터 변경도 가능하다.
Local Variable 이라 접근이 안될 것 같았지만 접근이 가능하기에 개발하는데 잘 관리를 해야 할 것 같다. 이전 프로그램의 변수를 전혀 상관없는 프로그램에서 수정을 하면 문제가 생길 것이다. 여기서는 단지 Read 의 기능을 하기 때문에 사용해도 큰 문제는 없을 듯 하다.
'SAP > ABAP' 카테고리의 다른 글
SAP R/3 에서 차트, 그래프 그리기 : GRAPHICS GUI CE DEMO (0) | 2015.10.01 |
---|---|
Functional ALV 에서 선택한 컬럼 가져오는 함수 : REUSE_ALV_GRID_LAYOUT_INFO_GET (0) | 2015.10.01 |
ABAP 스마트폼 언어별 텍스트가 다르게 나오는 경우 해결방법 (0) | 2015.05.22 |
ABAP 개발을 위한 Eclipse 및 플러그인 설치하기 (0) | 2015.04.06 |
ABAP 개발자의 시작 (0) | 2015.04.06 |
ABAP 간단한 결과 내용을 ALV 팝업으로 출력하기 (0) | 2015.02.06 |
ABAP BDC 동일한 Work Order 수행시 오류 발생(IW32) (0) | 2015.02.05 |
ABAP Call Screen 100 실행 후 Write 구문 출력하기 (0) | 2015.01.26 |
ABAP 텍스트 박스 ( Input Box ) Dropdown List 만들기 (0) | 2015.01.20 |
ABAP Stored Procedure 호출방법 (0) | 2015.01.15 |