본문 바로가기

SAP/ABAP

ABAP. 2

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

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


1. 변수 선언

ABAP 프로그램에서 변수는 전 게시글에도 적어놨듯이 데이터를 저장하고 처리하는 데 사용되는 메모리 공간을 식별하는 데 사용되는 이름이나 식별자입니다.

변수는 프로그래밍 언어에서 매우 중요한 개념 중 하나이며, 데이터를 임시로 저장하거나 조작하는 데 사용됩니다.

쉽게 말해 데이터를 담을 그릇이라고 생각해주시면 됩니다.

 

변수를 선언하기 위해선 DATA를 사용합니다.

DATA: lv_number TYPE i.

위 코드와 같이 ABAP에서 변수 선언 시 변수 이름과 그에 따른 데이터 타입을 설정해주어야 합니다. 또한, 선언문이 종료되었다면 반드시 문장의 끝에 '.'을 찍어주어야 합니다.

 

변수 이름은 임의로 설정하는 것이 아닌 ABAP 프로그래밍 언어의 규칙에 맞춰 선언해야 합니다.

아래 표를 참고하시어 선언하시면 됩니다.

LT_ Local Table
GT_ Global Table
LV_ Local Value
GV_ Global Value
LS_ Local Structure
GS_ Global Structure
TV_ Element Type
TS_ Structure Type
TT_ Table Type
GC_ Constants
IT_ Internal Table

 

또한, ABAP 프로그래밍 언어는 글로벌 데이터 타입과 로컬 데이터 타입으로 나눠집니다.

 *글로벌 데이터 타입의 경우 ABAP Dictionary(T-code: SE11)에 저장되어 있는 타입으로 ABAP 프로그램 전체에서 사용 가능한 데이터 타입입니다.

 *로컬 데이터 타입의 경우 특정 프로그램(ex. 직접 만든 프로그램)에서만 사용 가능한 데이터 타입입니다.


2. 스트럭처 선언

ABAP에서 스트럭처는 관련된 여러 개의 데이터 필드를 그룹화하여 하나의 데이터 구조로 정의하는 데 사용합니다.

스트럭처를 사용하면 여러 필드를 묶어서 효과적으로 데이터를 관리할 수 있습니다. 또한, 관련된 데이터를 하나의 변수에 저장할 수 있습니다.

 

스트럭처는 DATA를 이용하여 선언합니다. 선언 구문은 다음과 같습니다.

DATA: BEGIN OF <스트럭처 이름>,
      <스트럭처의 필드 이름 1> TYPE <필드의 데이터 유형>,
      <스트럭처의 필드 이름 2> TYPE <필드의 데이터 유형>,
      <스트럭처의 필드 이름 3> TYPE <필드의 데이터 유형>,
      <스트럭처의 필드 이름 4> TYPE <필드의 데이터 유형>,
      END OF <스트럭처 이름>,
  <선언한 테이블 이름> LIKE TABLE OF <선언한 스트럭처 이름>.

3. 인터널 테이블 선언

ABAP에서 테이블은 인터널 테이블을 뜻하며, 인터널 테이블은 프로그램 내에서 데이터를 일시적으로 저장하거나 처리하기 위한 데이터 구조입니다.

 

인터널 테이블은 3가지 유형으로 나눠집니다.

3가지 유형은 다음과 같습니다.

1. STANDARD TABLE: 키가 정렬되지 않은 일반적인 테이블입니다. 데이터에 대한 순차적인 액세스가 가능하며, 키 중복이 허용됩니다.

 *INDEX, KEY ACCESS 가능, NON_UNIQUE(중복 가능, 중복된 데이터 할당 가능), 주로 인덱스 엑세스 사용
    - 인덱스 엑세스: 테이블 엔트리를 행 번호로 식별
    - 키 엑세스: 테이블 엔트리를 필드 값으로 식별, 각각의 컴포넌트에 존재하는 데이터를 가지고 엑세스하는 것
    - 인덱스 값으로 엑세스, 컴포넌트에 할당된 값으로 엑세스 가능


2. SORTED TABLE: 특정 키에 대해 정렬된 상태를 유지하는 테이블입니다. 이진 검색이 가능하며, 키 중복이 허용됩니다.

 *INDEX, KEY ACCESS 가능, NON_UNIQUE(중복 가능, 중복된 데이터 할당 가능)/UNIQUE(중복 불가), 주로 키 엑세스 사용 가능


3. HASHED TABLE: 해시 함수를 사용하여 데이터에 대한 직접 액세스를 지원하는 테이블입니다. 키 중복이 허용되지 않습니다.

 *INDEX ACCESS 불가능, KEY ACCESS 가능, UNIQUE(중복 불가), 키 엑세스만 사용 가능

 

테이블은 TYPES를 이용하여 선언합니다.

 

 *Internal Table & Work Area 생성

DATA: <새로 만든 빈 테이블명> TYPE TABLE OF <베이스가 되는 테이블명>,
      <새로 만든 스트럭처명> LIKE LINE OF <새로 만든 빈 테이블명>.

4. 상수 선언

ABAP에서 상수는 프로그램 내에서 값이 변하지 않는 데이터를 정의하는데 사용합니다.

상수는 한 번 선언되면 그 값을 변경할 수 없으며, 주로 프로그램 내에서 사용되는 고정된 값들을 나타내는 데에 활용됩니다.

상수는 CONSTANTS를 이용하여 선언합니다.

CONSTANTS <상수 이름> TYPE <데이터 타입>.

5. 반복문

ABAP에서 반복문은 특정 작업을 여러 번할 때 사용합니다.

ABAP에서는 DO, WHILE, IF가 주로 사용됩니다.

반복문은 중복해서 사용이 가능합니다.

 

IF ~ ENDIF 구문

IF <조건문>.
<조건문이 참일 때 식, 출력문>.
ELSE.
<조건문이 거짓일 때 식, 출력문>.
ENDIF.

DO ~ ENDDO 구문

 *EXIT 구문을 사용하면 반복문을 중지시킬 수 있습니다.

DO
IF <조건>. 
EXIT. 
ENDIF.
ENDDO.

DO n TIMES ~ ENDDO 구문

DO 5 TIMES.
  <반복 실행될 코드>
ENDDO.

WHILE 구문

DATA lv_counter TYPE i VALUE 0.

WHILE lv_counter < 5.
  <반복 실행될 코드>
  lv_counter = lv_counter + 1.
ENDWHILE.

LOOP 구문

LOOP AT <인터널 테이블> INTO <스트럭처>
INTO <인터널 테이블 내용을 할당할 다른 인터널 테이블>.
 <식>
ENDLOOP.

6. 트랜잭션 코드 (T-CODE)

T-CODE(Transaction Code)는 SAP 시스템에서 특정 기능이나 프로그램을 실행하기 위한 약어나 단축 코드를 나타냅니다. T-Code는 특정 SAP 프로그램이나 트랜잭션을 실행하도록 지정됩니다.

T-Code를 사용하면 사용자는 특정 작업을 수행하거나 데이터를 조회하고 수정할 수 있습니다.

 

T-Code의 종류는 굉장히 많기 때문에 작성자가 공부한 T-Code의 종류만 작성하겠습니다.

추후에 다른 T-Code를 공부하게 되면 갱신하겠습니다.

SE80
Object Navigator
SE38
ABAP Editor
SE37
Function Builder
SE11
ABAP Dictionary
SE16
Data Browser
SE16N
테이블에 데이터 삽입 시 사용
SE21
Package Builder
SE24
Class Builder
SE91
Message
BAPI
BAPI Explorer

 


7. COLLECT 구문

COLLECT 구문은 데이터베이스 테이블이나 내부 테이블에서 데이터를 검색하고 통계 정보를 계산하는 데 사용됩니다.

일반적으로 특정 그룹 기준으로 데이터를 합산하거나 집계할 때 유용합니다.

 

COLLECT 구문은 숫자 필드가아닌 다른 필드들을 키값으로 잡고 합산합니다.

COLLECT GS_CALC <스트럭처> INTO GT_CALC <인터널 테이블>.

'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. 1  (0) 2024.01.22