ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Data Type] Predefined ABAP Type: Other types
    SAP/Abap 2022. 1. 10. 20:59

    [Character type]

    Type Meaning
    C 문자, 숫자, 특수문자를 표현
    N 숫자(Numeric)를 type c 로 표현
    D 날짜를 표현
    T 시간을 표현
    • Type c 는 데이터 선언시 문자의 길이를 선언해야한다. 미선언시 default(1)값으로 정의된다.
    REPORT ZA02_05.
    
    DATA : gv_f0,
           gv_f1        TYPE c,
           gv_f2(1)     TYPE c,
           gv_f3(2)     TYPE c,
           gv_f4        TYPE c LENGTH 2,
           gv_f5(5),
           gv_len       TYPE i.
    
    MOVE : 'KOREA' TO gv_f0,     " MOVE: '='와 동일하게 변수에 데이터를 할당. 
           'KOREA' TO gv_f1,
           'KOREA' TO gv_f2,
           'KOREA' TO gv_f3,
           'KOREA' TO gv_f4,
           'KOREA' TO gv_f5.
    
    WRITE :/ gv_f0,
           / gv_f1,
           / gv_f2,
           / gv_f3,
           / gv_f4,
           / gv_f5.
    
    gv_len = STRLEN( gv_f5 ).    " STRLEN 함수: 문자의 길이를 반환
    WRITE :/ gv_len.

    REPORT ZA02_06.
    
    DATA : gv_num1 TYPE i,            " 정수형 타입
           gv_num2 TYPE n LENGTH 4.   " 길이 4의 문자 타입
    
    gv_num1 = 89.
    WRITE :/ gv_num1.
    
    gv_num2 = 89.
    WRITE :/ gv_num2.

    REPORT ZA02_07.
    
    DATA : gv_date TYPE d.
    
    gv_date = sy-datum.        " 현재 날짜
    WRITE :/ gv_date.
    
    gv_date = gv_date + 3.     " 현재 날짜 + 3 => 3일 뒤의 날짜 계산
    WRITE :/ gv_date.
    
    DATA : gv_time TYPE t.
    
    gv_time = sy-uzeit.        " 현재 시간
    WRITE :/ gv_time.
    
    gv_time = gv_time - 60.    " 현재 시간 - 60 => 60초 이전의 시간 계산
    WRITE :/ gv_time.

     

    [가변길이를 갖는 predefined abap type]

    # String type: 실행 시점까지 고정 길이가 정해지지 않아 매우 긴 문자열을 표현할때 사용된다.

    • Type c와 달리 Type string사용시 동적 메모리가 할당된다.
    • Type string / c의 유용한 명령어
      • 명령어 의미  
        FIND 문자열 내 특정 문자를 찾음 [반환 값: 0(문자 존재)] FIND p IN text
        REPLACE 문자열 내 특정 문자를 변경 REPLACE g WITH f INTO p
        TRANSLATE 문자열의 대/소문자를 변경 TRANSLATE c TO LOWER CASE(UPPER CASE)
        SHIFT 문자열을 왼쪽으로 1칸씩 시프팅 SHIFT c
        CONDENSE 공백을 제거하고 왼쪽으로 정렬 CONDENSE c
        OVERLAY 문자열의 빈곳을 덮어씌움 OVERLAY c1 WITH c2
        CONCATENATE 문자열을 합침 CONCATENATE f1...fn INTO g
        SPLIT 문자열을 구분자를 기준으로 분할 SPLIT f AT g INTO h1...hn
    REPORT ZA02_08.
    
    DATA : gv_str    TYPE string,
           gv_chr(4) TYPE c.
    
    gv_str = 'ABAP'.
    gv_chr = 'B'.
    
    *WRITE :/ 'gv_str: ', gv_str,
    *       / 'gv_chr: ', gv_chr.
    
    FIND gv_chr IN gv_str.            " gv_str문자열 안에 gv_chr문자가 있는지 확인
    IF sy-subrc EQ 0.                 " => 문자가 존재하면 sy-subrc는 0 반환
      WRITE :/ 'B Found'.
    ENDIF.
    
    gv_str = 'ABAP'.
    gv_chr = 'BBAP'.
    REPLACE 'ABAP' WITH gv_chr INTO gv_str.  " gv_str문자열 안의 'ABAP'문자를 gv_chr로 변경
    WRITE :/ gv_str.
    
    gv_str = 'ABAP'.                  " gv_str문자열을 소문자로 변환
    TRANSLATE gv_str TO LOWER CASE.
    WRITE :/ gv_str.
    
    gv_str = 'ABAP'.                  " gv_str문자열을 왼쪽으로 쉬프팅
    SHIFT gv_str.
    WRITE :/ gv_str.
    
    gv_str = 'AB  AP'.                " gv_str문자열의 공백을 제거
    CONDENSE gv_str NO-GAPS.
    
    gv_str = ' B P'.                  " gv_str의 빈곳을 gv_chr로 채움
    gv_chr = 'AAAA'.
    OVERLAY gv_str WITH gv_chr.
    WRITE :/ gv_str.
    
    gv_str = 'AB'.
    gv_chr = 'AP'.
    CONCATENATE gv_str gv_chr INTO gv_str.    " gv_str과 gv_chr을 합쳐 gv_str에 할당
    WRITE :/ gv_str.
    gv_str = 'AB,AP'.
    SPLIT gv_str AT ',' INTO gv_str gv_chr.   " gv_str을 구분자(,)로 분할하여 gv_str, gv_chr에 할당
    WRITE :/ gv_str, gv_chr.

     

    [Single quotation(') VS Grave accent(`)]

    Grave accent를 사용하면 문자열내에 포함된 모든 공백(space)를 모두 인식할 수 있다.
    REPORT ZA02_00.
    
    DATA gv_char(32) TYPE c.
    
    gv_char = 'This is a'.
    CONCATENATE gv_char 'text   ' 'end' INTO gv_char SEPARATED BY space.
    WRITE :/ gv_char.
    
    gv_char = 'This is a'.
    CONCATENATE gv_char `text   ` `end` INTO gv_char SEPARATED BY space.
    WRITE :/ gv_char.

     

    'SAP > Abap' 카테고리의 다른 글

    [Data Type] ABAP dictionary's type  (0) 2022.01.11
    [Data Type] Program's local type  (0) 2022.01.11
    [Data Type] Predefined ABAP Type: Numeric type  (0) 2022.01.10
    [Data Type] Abap naming rule  (0) 2022.01.10
    [Data Type] Data variable & Data type 기본  (0) 2022.01.10
Designed by Tistory.