ABAP의 Data Object

kailyn·2024년 8월 4일

SAP

목록 보기
5/12

데이터 오브젝트

데이터 오브젝트는 프로그램에서 실제로 사용되는 변수를 말한다. 데이터 오브젝트는 선언된 데이터 타입을 기반으로 한다.

데이터 오브젝트 선언

  1. 변수 선언
    DATA: lv_name TYPE ty_char10,  " 10자리 문자형 변수 선언
        lv_age  TYPE i.          " 정수형 변수 선언
  2. 구조체 선언
    DATA: ls_person TYPE ty_person.  " ty_person 구조체 타입의 변수 선언
  3. 내부 테이블 선언
    DATA: lt_person TYPE ty_person_table,  " ty_person_table 타입의 내부 테이블 선언
        ls_person_line TYPE ty_person.   " ty_person 구조체 타입의 라인 변수 선언
  4. 상수 선언
    상수는 변경되지 않는 값을 가지는 데이터 오브젝트
    CONSTANTS: lc_max_value TYPE i VALUE 100.  " 정수형 상수 선언 및 초기값 100 할당

데이터 오브젝트 활용

  1. 값 할당
    변수에 값을 할당하는 방법
    lv_name = 'John Doe'.  " lv_name 변수에 'John Doe' 값 할당
    lv_age = 30.           " lv_age 변수에 30 값 할당
  2. 구조체 필드 접근
    구조체의 각 필드에 접근하고 값을 할당하는 방법
    ls_person-name = 'Jane Doe'.  " ls_person 구조체의 name 필드에 'Jane Doe' 값 할당
    ls_person-age = 25.           " ls_person 구조체의 age 필드에 25 값 할당
  3. 내부 테이블 작업
    내부 테이블에 데이터를 추가하고, 읽는 방법
    APPEND ls_person TO lt_person.  " ls_person 구조체를 lt_person 내부 테이블에 추가
    LOOP AT lt_person INTO ls_person_line.  " lt_person 내부 테이블의 각 라인을 ls_person_line 변수에 읽어오기
    WRITE: / ls_person_line-name, ls_person_line-age.  " 읽어온 라인의 name 및 age 필드를 출력
    ENDLOOP.
  4. 필드 심볼(Field Symbols)
    필드 심볼은 특정 메모리의 특정 위치를 참조하는 포인터와 비슷한 개념
    FIELD-SYMBOLS: <fs_person> TYPE ty_person.  " ty_person 타입의 필드 심볼 선언
    ASSIGN ls_person TO <fs_person>.  " ls_person 구조체를 <fs_person> 필드 심볼에 할당
    IF sy-subrc = 0.  " 할당 성공 시
    WRITE: / <fs_person>-name, <fs_person>-age.  " <fs_person> 심볼을 통해 name 및 age 필드 값을 출력
    ENDIF.
profile
나는 할 수 있다...!

0개의 댓글