본문 바로가기

SAP/ABAP

ABAP. 1

ABAP 언어에 대한 개념을 정리하는 포스팅입니다.

작성자는 ABAP에 대한 전문가가 아니며, 작성된 정보가 부정확할 수 있으니 게시글은 참고 목적으로만 봐주시면 감사하겠습니다.


1. SAP

기업용 응용 소프트웨어를 개발 및 판매하는 독일의 기업.


2. ABAP

ABAP(Advanced  Business Appliacation Programming)은 SAP 시스템에서 사용되는 프로그래밍 언어.

주로 SAP ERP, SAP S/4HANA 등의 SAP 솔루션에서 사용.

 -ABAP 용도: 데이터 처리, 사용자 인터페이스 개발, 비즈니스 로직 구현, 리포트 및 폼 개발, 인터페이스 연동

 -ABAP 언어의 특징: 유형이 지정되어 있다, 다국어 지원이 가능하다, SQL 접근이 가능하다, 객체 지향 언어로 생산성이 향상된다, 독립 플랫폼, 상위 호환 가능

 -구문 규칙: 워드와 워드는 스페이스로 구분, 대소문자 구분 X, 아밥 소스코드는 들여쓰기가 가능하다.

 -주로 사용하는 키워드: PARAMETERS, DATA, MOVE, ADD, WRITE, NEW-LINE 


 

3. 변수

ABAP에서 변수는 데이터를 저장하고 조작하는 데 사용되는 메모리 공간의 식별자.

다양한 데이터 유형을 가질 수 있다.


4. 데이터 타입

데이터를 저장할 공간 (데이터를 담을 그릇같다고 생각하면 된다.)

주로 TYPE, TYPES를 이용하여 데이터 타입을 선언한다.

게시글에서 작성한 데이터 타입외에 다양한 데이터 타입들이 존재합니다. 글이 길어지는 관계로 Day2에 작성 예정입니다.

 

 -데이터 타입 종류

4-1. Elementary Data Types (기본 데이터 유형): ABAP에서 가장 기본적인 데이터 유형들로, 단일 값을 나타낸다.

예시: CHAR (문자), NUMC (숫자문자), INT (정수), FLOAT (부동 소수점), DATE (날짜), TIME (시간) .

<코드>

DATA lv_char(변수 1) TYPE char10(데이터 타입 1).
DATA lv_integer(변수 1) TYPE i(데이터 타입 2).
DATA lv_float(변수 1) TYPE f(데이터 타입 3).

 

4-2. Complex Data Types (복합 데이터 유형): 여러 개의 필드로 구성된 구조체를 선언할 수 있다.

예시: DATA: BEGIN OF structure_name OCCURS n, field1 TYPE i, field2 TYPE string, END OF structure_name.

<코드>

DATA lv_char(변수 1) TYPE char10(데이터 타입 1).
DATA lv_integer(변수 2) TYPE i(데이터 타입 2).
DATA lv_float(변수 3) TYPE f(데이터 타입 3).

 

4-3. Internal Tables (내부 테이블): 테이블 형태의 데이터를 처리하는 데 사용되며, 여러 행과 열을 가진다.

TYPE TABLE OF를 사용하여 선언한다.

예시: DATA lt_table TYPE TABLE OF string.

<코드>

DATA lt_names TYPE TABLE OF string.

 

4-4. Strings (문자열): 문자열 데이터를 저장하는 데 사용됩니다.

예시: DATA lv_string TYPE string.

<코드>

DATA lv_message TYPE string.

 

4-5. References (참조): 다른 변수나 객체를 가리키는 데 사용됩니다.

: DATA(lr_object) = NEW cl_class( ).

<코드>

DATA(lr_object) TYPE REF TO cl_class.

 

4-6. Field Symbols (필드 심볼): 런타임에 특정 데이터 객체를 가리키는 포인터 역할을 하는 변수입니다.

예시: FIELD-SYMBOLS: <fs_field> TYPE any.

<코드>

FIELD-SYMBOLS: <fs_field> TYPE any.

 

4-7. 데이터 타입의 유형: 아밥 데이터 타입은 Complete, Incomplete로 나눠집니다.

Complete: 길이가 고정되어 있지 않아 길이를 직접 지정해야 합니다.

TYPE DESCRIPTION EX
I, INT4
정수 일반적인 정수 타입
INT8 정수 8바이트 정수 타입
D 날짜 날짜 타입, 기본 형식은 [YYYY.MM.DD]를 사용한다.
T 시간 시간 타입, 기본 형식은 [HH:MM:SS]를 사용한다
FLOAT 실수 부동 소수점 숫자를 나타내는 데이터 타입이다,
STRING 문자열 일반적으로 사용되는 문자열 타입, 동적으로 데이터 크기 조절이 가능하다.
XSTRING 문자열 16진수로 표현된 문자열
외부 파일의 내용을 SAP 시스템으로 가져오거나 SAP 시스템에서 외부로 파일을 전송할 때 사용한다.
DECFLOAT16 고정 소수점(16) 8바이트, 소수점 16자리 고정 형식을 사용한다.
DECFLOAT32 고정 소수점(32) 16바이트, 소수점 32자리 고정 형식을 사용한다.

Incomplete: 길이가 고정되어 있어 길이를 지정할 수 없습니다.

TYPE DESCRIPTION EX
C 문자(Character) Length를 통해 변수 길이를 지정한다.
N 숫자 코드 형식의 문자로 연산이 불가능하다
P Packed 뒤에 DECIMALS를 사용하여 소수점을 가진 숫자 표현한다.
X 16진수 문자열 16진수 표현이 필요한 경우에 사용한다.

5. 시스템 변수

ABAP 시스템에서 기본적으로 제공하는 변수로 프로그램 실행 중에 자동으로 시스템에 의해 설정되는 특수한 변수. 종류가 굉장히 많기 때문에 자주 쓰는 변수만 기록한다.

변수명은 [SY-]로 시작한다.

 -시스템 변수 종류 (자주 사용하는 변수만)

SY-SUBRC 가장 최근에 실행된 질의 혹은 쿼리 등이 케이스 상에서 정상적으로 동작했는지에 대한 반환 코드를 제공한다.
SY-SUBRC = 0: 쿼리가 정상적으로 실행, SY-SUBRC = 1~N: 쿼리가 정상적으로 실행되지 않음
SY-DATUM 실행 시점의 오늘 날짜를 반환한다.
SY-UZEIT 현재 시간을 반환한다.
SY-TABIX 인터널 테이블의 인덱스 번호를 반환한다.
SY-INDEX DO나 WHILE 등 반복문에서의 인덱스를 반환한다.
SY-DBCNT 쿼리 결과가 성공한 ROWS의 수를 반환한다.
SY-LANGU 현재 로그인한 언어 키를 반환한다.
SY-SYSID 현재 접속한 시스템 변수를 반환한다.
SY-TCODE 현재 실행 중인 프로그램의 T-CODE를 반환한다.
SY-UNAME 현재 로그인한 사용자의 SAP ID를 반환한다.

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

ABAP. 6  (1) 2024.02.12
ABAP. 5  (1) 2024.01.29
ABAP. 4  (1) 2024.01.27
ABAP. 3  (1) 2024.01.25
ABAP. 2  (1) 2024.01.24