[SAP] ABAP - 기본적인 구문 ( Data 관련 )
본문 바로가기
IT/SAP S4 HANA

[SAP] ABAP - 기본적인 구문 ( Data 관련 )

by DHan- 2020. 4. 21.
728x90

 

DATA , PARAMETERS , SELECT-OPTIONS


DATA

유저가 설정한 변수명에 타입을 지정하여 프로그램 내에 공간을 확보한다.
(타입 : 데이터 크기 혹은 인터널테이블 등 )


(EX- ABC TYPE I. / ABC TYPE C. / ABC LIKE I. / ABC LIKE C (easy abap 2.0 2장 참조)

TYPE ->Dictionary의 글로벌 타입을 참조하여 선언할 때 사용,  domin을 직접참조,

LIKE -> 이미 선언된 데이터 object에서 비슷한 object를 만들고 싶을 때 사용, 선언된 필드의 domain을 참조

DATA types 와 data objcet의 차이점은 참조유형은 types라고 보면 되고, 객체는 변수명으로 보면됨. 

 

PARAMETERS

실행화면에서 입력상자를 생성하는 구문으로 (단일값)의 데이터만 지정할 수 있다.

(변수명) TYPE (출처테이블)의 형태로 작성된다.

(EX- PARAMETERS P_ABC TYPE MARA-ABC)

SELECT구문의 WHERE의 조건은 = 의 형태를 지닌다. 

 

SELECT-OPTIONS

실행화면에서 두 개의 입력상자를 생성하는 구문으로 (다중값)의 데이터가 지정 가능하다.

TABLES:를 반드시 작성해야하며,

PARAMETERS와 다르게 FOR을 입력하여 SCREEN에서 사용할 변수를 정의

(변수명) FOR (출처 테이블)의 형태로 작성된다.

(EX- SELECT-OPTIONS : S_ABC FOR MARA-ABC)

SELECT구문의 WHERE의 조건은 IN 의 형태를 지닌다.

 

OCCURS 0(N) , TABLES , BEGIN OF , WITH HEADER LINE 


OCCURS 0(N)

데이터선언 마지막에 작성되는 문장이며 인터널테이블로 공간을 확보하라는 의미를 지닌다.

( 바디를 생성 )

occurs 구문은 INITIAL SIZE와 같은 효과를 가진다.

TABLES  TABLE WORK AREA타입 데이터 선언으로 프로그램 내에서 구조체처럼 사용가능하다.
BEGIN OF 

데이터 공간을 설정하기 위한 입력 값을 의미한다.

OCCYRS 0.을 입력해야 인터널 테이블로 지정됨.

미 입력시에는 Work Area로 지정된다. 

( 이 구문을 사용하여 데이터를 선언하면 자동으로 HEADER가 생성 )

WITH HEADER LINE  인터널테이블에 헤더라인을 생성해주는 구문이다. ( BEGIN OF 구문은 자동으로 헤더를 생성한다 ) 
TYPES   EX) ETYPS : ABC TYPE C. ( 이 프로그램 내에서만 사용하기 위해 사용하는 선언 유형 ) 

 

CONSTANTS , DEFAULT , VALUE , LIKE LINE , 


CONSTANTS   상수 선언  EX ) CONSTANTS : gc_1 TYPE gty_1 VALUE '1' ( 로컬 타입 gty_1 욿  VALUE 값은 1 ) 
DEFAULT  etlab-low나   setlab-low부터 setlab-high 구간 값을  기본값으로 지정할 수 있다 (SELECT-OPTIONS의 문법)초기값을 지정할 수 있다. Parameters 에도 가능 ?
VALUE 상수선언할때 사용되며 상수선언시 받느시 작성되어야 한다. ( 초기값 주는 ? ) 
LIKE LINE TYPE LINK와 동일 ( itabype는 인터널 테이블로선언, 즉 변수 복수 개로 구성된 같은 형식으로 선언해야 오류x

 

LOWER CASE , OBLIGATORY , NO-EXTENSION 


LOWER CASE 문자열을 입력 받을 때 대소문자를 구분하여 입력 받는 경우 사용
OBLIGATORY OBLIGATORY로 정의시 필수 입력 항목임을 의미한다
NO-EXTENSION SELECT-OPTIONS에서 기본적으로 제공하는 다중선택을 제약. 오직 하나의 LOW, HIGH 값만 입력가능

 

 

728x90

댓글