Skip to content

KaJaeHyeob/SAP_ABAP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

SAP ABAP

SAP ABAP | SAP ERP

목차 및 링크

1. ABAP란?

1) ABAP

"Advanced Business Application Programming"의 약어로, SAP ERP 시스템에서 사용하는 프로그래밍 언어이다.

2) ABAP Program 구조

Component(컴포넌트) > Package(개발 클래스) > Object(오브젝트)

ABAP Program 구조는 위와 같이 이루어져있으며, Object(오브젝트)에는 Program, Function, Dictionary Object 등이 포함된다.

3) ABAP Dictionary

SAP ERP의 ABAP Dictionary는 3가지 대분류와 7가지 소분류를 사용하여 Dictionary Object를 구분시킨다.
분류 항목은 아래와 같으며, T-code SE11에서 각 분류 항목으로 나눠진 Dictionary Object를 조회할 수 있다.

  • Database Object : Database Table, View
  • Type Definition : Data Type, Type Group
  • ABAP Tools : Domain, Search Help, Lock Object

7가지 소분류에 대한 정의는 아래와 같다.

  • Database Table : DB 내에 실제로 저장되어 있는 물리 데이터
  • View : 하나 이상의 Database Table로 생성한 논리 데이터
  • Data Type : 프로그램에서 사용할 수 있도록 정의된 데이터 타입
  • Type Group : 데이터 타입을 모아둔 그룹
  • Domain : Data Element에 할당되어 사용되는 기술적 속성 정의
  • Search Help : Table Field 입력값에 대한 Possible Entry 정의
  • Lock Object : 중복 수정 방지를 위한 Table Lock 정의

2. Data Type & Variable

1) Data Type 종류

ABAP Program 내에서 사용할 Variable(변수)의 타입을 정의하기 위해 사용한다. 아래와 같이 크게 3가지로 분류된다.

  • Predefined ABAP Types : SAP 커널 레벨에 정의되어 있는 데이터 타입으로, C(문자), D(날짜), F(지수형 실수), I(정수), N(자연수), P(소수형 실수), T(시간), X(십육진수) 등이 존재한다.
  • Local Types in Programs : ABAP Program 내에서 정의하여 해당 프로그램에서만 사용하는 데이터 타입으로, 여러 타입의 필드를 조합한 Structure 형태의 타입을 정의하여 사용할 수 있다.
  • Types in the ABAP Dictionary : ABAP Dictionary에 등록되어 있는 Object의 데이터 타입으로, 모든 ABAP Program에서 사용 가능하다.

2) Data Type & Variable 선언

ABAP Program 내에서의 Variable(변수) 선언은 Data Type을 참조하는 방식으로 이루어진다. 주요 구문은 아래와 같다.

** Predefined ABAP Types 참조 변수 선언
DATA : 
  int TYPE I VALUE 123, " VALUE 구문은 초기값 설정
  float TYPE F, " F 타입의 경우 반올림 오류가 발생하므로, 실수는 일반적으로 P 타입 사용
  pack TYPE P DECIMALS 4, " DECIMALS 구문은 P 타입에서만 사용 가능하며, 최대 14 자리수의 소수점 설정
  time TYPE T,
  text1 TYPE C,
  text2 TYPE C LENGTH 4, " LENGTH 구문은 C, N, X, P 타입에서만 사용 가능하며, 길이 설정
  text3(2) TYPE C, " 괄호 사용한 길이 설정
  ltext TYPE string.

** Local Types in Programs 참조 변수 선언
* Local Type 선언
TYPES : 
  BEGIN OF struct,
    num1 TYPE I,
    num2 TYPE F,
  END OF struct.
* 변수 선언
DATA : 
  gs_struct TYPE struct, " TYPE 구문 뒤엔 Type명
  gv_num1 LIKE gs_struct-num1. " LIKE 구문 뒤엔 이미 Type 할당된 Object명

** Types in the ABAP Dictionary 참조 변수 선언
DATA : 
  gv_carrid TYPE s_carr_id, " Data Element 참조 변수 선언
  gv_connid TYPE sflight-connid. " Table Field 참조 변수 선언

변수명 길이는 최대 30자이며, 네이밍 룰은 아래와 같다.

  • 첫 번째 글자(범위) : G(글로벌 변수) / L(로컬 변수)
  • 두 번째 글자(타입) : V(단일 변수) / S(구조체 변수) / T(테이블 변수) / R(범위 변수) / C(상수) / O(클래스)
  • 세 번째 글자(구분자) : _
  • 나머지 글자 : 의미 요약

3. 연산 및 출력

1) 산술 연산

ABAP Program에서 쓰이는 산술 연산은 아래와 같다.

num_sum = num1 + num2. " 더하기
ADD num2 TO num1. " 더하기
num_substract = num1 - num2. " 빼기
SUBSTRACT num2 FROM num1. " 빼기
num_multiply = num1 * num2. " 곱하기
MULTIPLY num1 BY num2. " 곱하기
num_divide = num1 / num2. " 나누기
DIVIDE num1 BY num2. " 나누기
num_quotient = num1 DIV num2. " 몫
num_remainder = num1 MOD num2. " 나머지
num_power = num1 ** num2. " 제곱

2) 논리 연산

ABAP Program에서 쓰이는 논리 연산은 아래와 같다.

3) 문자열 연산

ABAP Program에서 쓰이는 문자열 연산은 아래와 같다.

DATA : 
  lv_str TYPE string VALUE '토마토 스위스 인도인 별똥별',
  lv_size TYPE i,
  lv_cnt TYPE i,
  lv_offset TYPE i,
  lv_first TYPE string,
  lv_second TYPE string.
lv_size = strlen( lv_str ). " 문자열 길이 반환 : 15
FIND ALL OCCURRENCES OF '토' IN lv_str MATCH COUNT lv_cnt. " 문자열 일치하는 개수 반환 : 2
FIND '마' IN lv_str MATCH OFFSET lv_offset. " 문자열 일치하는 위치 반환 : 1
REPLACE '토' IN lv_str WITH '도'. " 처음으로 일치하는 문자열 변환 : '도마토 스위스 인도인 별똥별'
REPLACE ALL OCCURRENCES OF '도' IN lv_str WITH 'Do' REPLACEMENT COUNT lv_cnt. " 일치하는 모든 문자열 변환 및 개수 반환 : 'Do마토 스위스 인Do인 별똥별' 2
TRANSLATE lv_str TO UPPER CASE. " 모두 대문자로 변환 : 'DO마토 스위스 인DO인 별똥별'
TRANSLATE lv_str TO LOWER CASE. " 모두 소문자로 변환 : 'do마토 스위스 인do인 별똥별'
CONCATENATE ' 기러기 ' lv_str INTO lv_str. " 각 문자열 끝의 공백 무시하고 문자열 합치기 : ' 기러기do마토 스위스 인do인 별똥별'
CONCATENATE lv_str ' 우 ' '영우' INTO lv_str RESPECTING BLANKS. " 각 문자열 끝의 공백 포함하여 문자열 합치기 : ' 기러기do마토 스위스 인do인 별똥별 우 영우'
CONCATENATE lv_str '역삼역' '' INTO lv_str SEPARATED BY ', '. " 구분자 사용하여 문자열 합치기 : ' 기러기do마토 스위스 인do인 별똥별 우 영우, 역삼역, '
CONDENSE lv_str. " 문자열 좌우 공백 제거 : '기러기do마토 스위스 인do인 별똥별 우 영우, 역삼역,'
lv_str = lv_str+4(25). " 위치 및 길이에 해당하는 문자열 슬라이스 반환 : 'o마토 스위스 인do인 별똥별 우 영우, 역삼'

4) 할당 연산

ABAP Program에서 쓰이는 문자열 연산은 아래와 같다.

5) 기타 연산

ABAP Program에서 쓰이는 기타 연산은 아래와 같다.


2. ABAP Programming

1) ABAP Programming 초급

ABAP Programming 관련 초급 메뉴얼 목록을 작성하고자 한다. 아래 "목록"을 참고하면 되겠다.

목록

코어 모듈

  • MM : "Material Management"의 약어로, 구매 및 자재 관리 모듈
  • PP : "Production Planning"의 약어로, 생산 관리 모듈
  • SD : "Sales and Distribution"의 약어로, 영업 및 유통(물류) 관리 모듈
  • FI : "Financial"의 약자로, 재무 회계 모듈 (외부 보고용 회계)
  • CO : "Controlling"의 약자로, 관리 회계 모듈 (내부 전략용 회계)
  • HR : "Human Resources"의 약어로, 인사 관리 모듈
  • BW : "Business Warehouse"의 약어로, 데이터 관리 모듈
  • BI : "Business Intelligence"의 약어로, 데이터 분석 및 리포팅 모듈

서브 모듈

  • QM : "Quality Management"의 약어로, 품질 관리 모듈
  • IM : "Investment Management"의 약어로, 수출입 및 투자 관리 모듈
  • LE : "Logistics Execution"의 약어로, 재고 및 보관 관리 모듈
  • PM : "Plant Management"의 약어로, 설비 관리 모듈
  • TR : "Treasury"의 약자로, 자금 관리 모듈
  • FB : "Firm Banking"의 약어로, 펌뱅킹 관리 모듈 (은행 업무)
  • PI : "Process Integration"의 약어로, non-SAP 프로그램 데이터 연동 관리 모듈

2) ABAP Programming 중급

3) ABAP Programming 고급

About

LGCC. SAP ERP | SAP ABAP

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published