ABAP 기초 문법 및 개념 정리

Ada·2024년 9월 5일

SAP ABAP

목록 보기
1/21

1. ABAP 프로그램 구조

ABAP 프로그램은 크게 두 부분으로 나뉜다.

선언 섹션: 데이터 타입, 구조, 테이블, 개별 필드 등을 정의하는 부분.

프로세싱 블록: 실제 로직이 수행되는 부분.

ABAP에서는 데이터 필드나 구조체, 테이블을 명시적으로 선언한 후, 프로세싱 블록에서 이 데이터를 처리한다.

DATA: var1 TYPE I,   "정수형 변수 선언
      var2 TYPE C.   "문자형 변수 선언

2. 필드와 데이터 타입

필드는 ABAP에서 데이터를 저장하기 위한 변수와 같은 개념이다.
필드는 데이터를 일시적으로 저장하며, 계산이나 논리 흐름 제어에 사용된다.
ABAP에서 필드는 다양한 데이터 타입으로 선언할 수 있다.

주요 데이터 타입

1. I (Integer): 정수 타입, 4바이트 크기의 정수를 저장

DATA num1 TYPE I.

2. C (Character): 고정 길이의 문자열 타입. 크기를 직접 지정해야 함

DATA text TYPE C LENGTH 10.

3. D (Date): 날짜 데이터를 저장하는 타입.

DATA today TYPE D.

4. F (float): 부동 소수점 숫자를 저장하는 타입.

DATA num_string TYPE N LENGTH 5.

3. ABAP에서의 프로세서 개념

ABAP 프로그램은 여러 컴포넌트로 구성되며, 그 중에서 Dynpro 프로세서와 ABAP 프로세서가 핵심 역할을 한다.

Dynpro 프로세서:

사용자와의 상호작용을 담당하며, 실제 계산을 수행하지는 않는다. 예를 들어, 화면에서 버튼을 클릭하거나 입력한 데이터를 받아들이는 역할을 한다.

ABAP 프로세서:

논리적인 처리 및 계산을 수행한다.


4. 데이터베이스 인터페이스

ABAP는 데이터베이스 독립적인 언어로, 모든 데이터베이스에서 ABAP 코드를 동일하게 사용할 수 있다.
데이터베이스와 상호작용할 때 Open SQL을 사용하며, 이 SQL 언어는 대부분의 SAP 시스템에서 권장된다.

SELECT * FROM my_table INTO TABLE lt_data.

5. 로컬 개발 환경 및 트랜잭션 코드

ABAP 개발을 위해 사용되는 주요 트랜잭션 코드

1. SE38:

ABAP 에디터, 프로그램을 작성하고 실행하는 개발 환경

2. SE37:

함수 빌더, 프로그램을 함수 모듈로 캡슐화하여 사용할 수 있는 환경

3. SE80:

오브젝트 네비게이터, 모든 개발 도구를 한 곳에서 관리할 수 있다.


6.

데이터 사전(ABAP Dictionary)는 SAP 시스템 내의 데이터베이스 테이블, 데이터 타입, 도메인 등을 정의하고 관리하는 데 사용된다.
SE11 트랜잭션을 통해 접속할 수 있으며, 새로운 테이블이나 필드를 생성할 때 사용된다.

테이블 생성 절차

  1. SE11 트랜잭션으로 데이터 사전에 접속
  2. 테이블 이름을 입력하고 Create 버튼 클릭
  3. 테이블 필드 및 속성 정의
  4. 테이블을 저장하고 Activate 버튼을 눌러 활성화

데이터 요소 및 도메인

  • 데이터 요소 : 필드의 논리적 정의를 제공하며, 필드의 데이터 타입과 길이를 결정한다.
  • 도메인 : 데이터의 유형, 길이, 유효값 범위를 정의하며, 데이터 요소에 연결된다.

7. ABAP 에서의 로컬 오브젝트

로컬 오브젝트개발 서버에만 존재하는 프로그램이나 테이블을 의미한다.
개발 후 시스템 전체에 배포하지 않는 한, 로컬 오브젝트로 유지된다.
개발 시 자주 사용되는 용어로, 프로그램을 테스트 하거나 내부적으로 사용할 때 유용하다.

로컬 오브젝트로 저장할 때는, Z 또는 Y 로 시작하는 사용자 정의 객체 이름을 사용한다.
(이사님이 Y로 시작하는게 좋다고 하셨는데 이유는 모름)


8. 문자열 검색과 시스템 변수

ABAP에서 문자열을 검색할 때는 **SEARCH) 명령어를 사용한다. 검색 결과는 sy-subrcsy-fdpos 시스템 변수를 통해 확인할 수 있다.

SEARCH text FOR 'ABC'/
IF sy-subrc = 0. 
    WRITE: / '문자열을 찾았습니다', sy-fdpos.
ENDIF.
  • sy-subrc: 0이면 성공, 4이면 실패.
  • sy-fdpos: 문자열의 위치 반환

9. 주석 처리

  • 한 줄 주석 : * 로 시작
  • 인라인 주석 : " 로 시작
profile
백엔드 프로그래머

0개의 댓글