반응형
아래 글은 chatgpt 4o를 이용한 스터디 내용 중 일부입니다.
스코프(scope)는 변수나 데이터 객체가 유효한 범위를 의미합니다.
ABAP의 스코프는 크게 다음과 같이 나눌 수 있습니다.
- 로컬 스코프(Local Scope):
- 서브루틴/메소드: 서브루틴(Form)이나 메소드 내부에서 선언된 변수는 그 서브루틴이나 메소드 내에서만 유효합니다. 이 변수들은 해당 블록을 벗어나면 더 이상 접근할 수 없습니다.
- 블록: DO, WHILE, LOOP 등의 반복문이나 IF, CASE 등의 조건문 내에서 선언된 변수도 해당 블록 내에서만 유효합니다.
- 전역 스코프(Global Scope):
- 프로그램/클래스: 프로그램의 시작 부분이나 클래스의 정의 부분에서 선언된 변수는 프로그램 또는 클래스 내의 모든 서브루틴이나 메소드에서 접근할 수 있습니다.
- 모듈 풀 프로그램(Module Pool Program): 모듈 풀 프로그램 내에서 선언된 전역 변수는 그 프로그램 내의 모든 화면(Screen)과 서브루틴에서 접근 가능합니다.
- 패키지 스코프(Package Scope):
- SAP 패키지 내에서 정의된 데이터 딕셔너리 객체(예: 테이블, 구조체, 타입 등)는 그 패키지 내의 모든 프로그램과 모듈에서 접근 가능합니다.
- 세션 스코프(Session Scope):
- 글로벌 변수: SET/GET PARAMETER를 통해 설정된 글로벌 변수는 동일한 사용자 세션 내의 모든 프로그램에서 접근할 수 있습니다.
- 메모리 ID: EXPORT TO MEMORY와 같은 명령어를 사용하여 설정된 메모리 ID는 동일한 사용자 세션 내의 모든 프로그램에서 접근할 수 있습니다.
- 스택 스코프(Stack Scope):
- 함수 호출 시 함수의 매개변수는 호출된 함수 내에서만 유효하며 함수가 종료되면 스택에서 제거됩니다.
예시
로컬 스코프 예시
FORM example_form.
DATA: lv_local TYPE i.
lv_local = 1.
WRITE: / 'Local variable:', lv_local.
ENDFORM.
전역 스코프 예시
DATA: gv_global TYPE i.
FORM example_form.
gv_global = 1.
WRITE: / 'Global variable:', gv_global.
ENDFORM.
세션 스코프 예시
abap코드 복사
SET PARAMETER ID 'ZVAR' FIELD 'some_value'.
GET PARAMETER ID 'ZVAR' FIELD lv_value.
WRITE: / 'Session parameter:', lv_value.
ABAP에서의 스코프 이해는 변수의 유효 범위를 명확히 하여 프로그램의 가독성과 유지보수성을 높이는 데 중요합니다.
반응형
'SAP' 카테고리의 다른 글
[MM] 자재 마스터(Material Master) (0) | 2024.06.06 |
---|---|
[MM] 조직구조(Enterprise Structure) (0) | 2024.06.06 |
[EWM] Physical Inventory Documents Database (0) | 2024.03.24 |
[EWM] Stock Database (0) | 2024.03.23 |
[EWM] Inbound Delivery Database (0) | 2024.03.21 |