ABAP 개발 시 로컬 오브젝트 는 서버 내 계정의 고유 영역에 저장 된 오브젝트 들을 말한다. SAP 로 개발을 어느 정도 해본 사람이라면 알겠지만, 기본적으로 SAP 는 개발/운영 환경으로 구성 되고 개발 에서 작업한 내역을 운영으로 전송하게 된다.
이 로컬 오브젝트는 전송 용이 아닌 개발자가 자유롭게 여러 테스트, 임시 프로그램 등을 생성할 때 아주 유용하게 사용할 수 있다.
만약 신입사원이 와서 프로그램을 개발 시킬 때는 로컬 오브젝트로 생성하게 만들어 관리할 수 있다.
ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
콘텐츠
로컬 오브젝트 생성법
T-CODE SE80 내 생성
ABAP 에서 SE80 은 Object Navigator 프로그램으로 접속하는 T-CODE 이다. 해당 화면에선 SAP 내의 존재하는 Object 들을 관리할 수 있다.
여기서 로컬 오브젝트 들을 보려면 좌측 메뉴, 목록에서 드롭다운을 통해 Local Objects 를 선택해 주면 된다.
로컬 오브젝트 영역은 $TMP 로그인 계정 형태로 표시된다. 여기서 우클릭을 하고 자유롭게 생성하고 싶은 오브젝트를 만들어 보면 된다. 나는 프로그램을 한번 만들어 보겠다.
프로그램 생성하기
우클릭 후 표시되는 목록 중 Create -> Program 을 선택한다.
그램 프로그램 명 or 프로그램 ID 를 입력하는 팝업 창이 출력 되는데, 회사 마다 다르겠지만 기본적으로 정식 개발 프로그램은 Z 를 맨앞에, 로컬 오브젝트는 Y를 맨앞에 붙인다. 그리고 뒤에 내용은 자유롭지만, 이 ID 는 고유의 값이므로 계정의 로컬 오브젝트를 겹치지 않게 보통 “Y + 계정명 + 오브젝트 유형 + 숫자” 로 만들었었다.
그래서 DEVELOPER 의 일부를 이용해 Y+DEV+PM+0001 로 프로그램 ID 를 입력 하고 확인을 누르면 프로그램 관련 속성을 입력하는 창이 출력 된다.
여기서 Title 만 “로컬 오브젝트 테스트 생성” 이라 명명 하고 Save 선택.
그러면 Create Object Directory Entry 란 팝업이 출력 되는데 여기서 중요한 것은 Package 가 $tmp 로 되어 있냐는 것이다. 이상이 없으면 버튼의 Local Object 를 선택하면 생성 완료.
T-CODE SE38 등 에서 생성
SE80 이 모든 오브젝트를 관리 한다면 특정 오브젝트만 생성/관리 하는 T-CODE 들도 존재 한다.
프로그램 생성 하기
SE38 은 프로그램을 생성하고 관리하는 프로그램으로의 접속 T-CODE. 여기서 프로그램 ID 를 입력하고 Create 를 눌러 생성할 수 있다.
그 이후의 과정은 SE80 과 동일하다. 최종 생성 시 $TMP, Local Object 선택 만 유의 하면 된다.
생성된 로컬 오브젝트 확인
정상적으로 생성 되었다면 SE80 내 로컬 오브젝트 목록에 생성된 내역이 표시된다.
로컬 오브젝트 사용 시 주의사항
로컬 오브젝트는 해당 오브젝트만 로컬 영역에 있을 뿐 만약 스탠다드나 기타 개발 테이블의 값을 생성/변경 시 영향을 주게 된다. 또한 로컬 오브젝트 내역을 운영 시스템으로 이관 하고 싶다면 별도의 작업이 필요하다.
어차피 로컬 오브젝트에서도 스탠다드 FM, BAPI 등을 이용하게 되니까 FI 쪽 개발 프로그램 이라면 전표를 로컬 오브젝트 내에서 생성해도 실제로 생성되는 것. 그러니 운영 서버에서 함부로 로컬 오브젝트를 생성하고 데이터를 조작해 보는 것은 지양해야 한다.
그래서 대부분의 회사에선 개발 서버 외에 실제 운영 서버에선 로컬 오브젝트 생성을 금지해두곤 한다.