SAP - Programming 개요

신지수·2022년 3월 7일
1

SAP

목록 보기
3/10

0. 들어가며

ABAP Dictionary란?
: 오브젝트들(Table, View, Structure, Types...)을 가르키며 데이터 구조를 정의하고 관리하는 역할

1. Package 생성

TCode SE21
  • package이름, Descripiton 작성

1-1. CTS 설정

TCode SE09
  • 앞으로 모든 생성이 CTS에 묶이기 때문에 잘 봐둘 필요가 있음

2. Table 생성

- TCode SE80 package 우클릭
- TCode SE11
- TCode SE16N: 테이블 데이터 대량생성
  • Description 작성
  • Fields탭 채우기
    • Key
      : 테이블의 데이터를 유일하게 구분할 수 있는 필드들로 구성
    • Initial Value
      : 값이 '존재'해야함(공백, '' 포함)
  • Delevery and Maintenance탭
    • Delivery Class: A
    • Data Browser/Table View Maint.: Display/Maintenance Allowed

2-1. Structure 생성

Structure란?
: 테이블과 같이 필드로 구성되어 있지만, 데이터는 저장할 수 없으며 구조만 가짐

  • .INCLUDE || .APPEND를 필드에 입력하여 사용

2-1. View 생성

View란?
: 하나 또는 여러 테이블에 존재하는 데이터를 통합하여 조회

  • Database View
    : 복수의 테이블에서 필요한 필드만 추출해서 view를 만듬

  • Projection View
    : 하나의 테이블에서 여러 개의 필드를 선택해서 view를 구성

  • Maintenance View
    : 유지보수용 view. 데이터 CRUD가 가능
    - 교육에선 Maintenance View를 사용
    - 여러개의 테이블을 동시에 유지보수 가능

    ERNAM: 입력인
    ERDAT: 입력일
    ERZET: 입력시간
    AEDAT: 변경일
    AEZET: 최종변경시간
    AENAM: 오브젝트 변경자 이름
  • Help View
    : Search Help에서 사용할 것ㅇ르 목적으로 만든 viw

3. Data Element 생성

- TCode SE80 package 우클릭
- TCode SE11

Data Element란?
: 비즈니스(업무)적인 내용을 관리, 테이블 필드의 모든 정보를 가진 ABAP Dictionary 오브젝트, 테이블 필드는 Data Element를 지정하여 필드의 속성을 정의

  • Domain을 입력하거나 직접 Data Type, 길이, 소수점 자리를 지정할 수 있음

3-1. Domain 생성

Domain이란?
: 필드의 기술적인 속성을 정의, Data Element에 할당되어 사용

4. Subroutine

Subroutine이란?
: Local Modulization.
FORM으로 시작하여 END FORM으로 종료되는 구문, 스크립트의 모듈화, 재사용, 구조화가 주목적

5. Function

Function이란?
: Subroutine과 유사하게 기능별로 모듈화하고 재사용이 가능하도록 지원

5-1. Function Module

Function Module이란?
: Global Modulization.
Function을 이용한 모듈화를 구현하여 재사용을 제공하고 스크립트 수를 줄임.

5-2. Function Group

- TCode SE37
- TCode SE80 package 우클릭

Function Group이란?
: 여러 Function Module을 모아 놓은 Container


1. ABAP Programming

ABAP Programming?
-> 데이터베이스를 짜거나 구성 요소를 만드는 것이 아니라 GUI 계층과 응용 프로그램 계층 사이에서 비즈니스 프로세스(Business process)에 따라 사용자가 원하는 기능을 가진 프로그램을 제공하도록 개발

1. Program Type

  • Executable Program (Type 1)
    - 조회 목적으로 사용. Report Program/List Program 이라고도 함
    - 조회가 목적이므로 조회 조건을 입력하는 Selection Screen 이 존재
    - 프로그램 실행시 Selection Screen 존재시 '1000' 스크린을 자동으로 호출
    - T-Code 생성없이 ABAP EDITOR 내에서 바로 프로그램 실행 가능
    - 프로그램 Flow 는 EVENT BLOCK Processing이라 하여 각 Event Block 순서대로 진행
    - 타 프로그램에서 호출 시 SUBMIT 구문을 사용하여 T-Code 생성 없이도 실행 가능
    - 'REPORT + 프로그램명 ' 구문을 시작으로 프로그램 작성


  • Module Pool Program(Tpye M)

    • 생성/수정/삭제/조회 의 목적으로 사용
    • Transaction Code 생성 후 실행가능
    • 프로그램 실행시 T-Code 에 입력된 시작 스크린을 호출
    • 타 프로그램에서 호출 시 Call Transaction 구문으로 호출 가능
    • 모든 스크린은 스크린 페인터를 통해 구현
    • 프로그램 Flow 는 T-Code 에 입력된 첫 스크린을 시작으로 다수의 스크린들이 순차적으로 호출되며 진행
    • 'PROGRAM + 프로그램명' 구문을 시작으로 프로그램을 작성
    • Module Pool 프로그램의 Naming 은 앞에 'SAPM'로 시작 ( SAP에서 권장 )

1-1. Report Program

SELECT SCREEN?
-> 입력 조건으로 화면을 구성 Parameters, SELECT-OPTIONS에 값을 주는 화면을 만들어줌.

  1. PARAMETERS
  • 선언문으로 프로그램 실행 시 값을 사용자가 입력
  • 실행마다 값을 변경하여 줄 수 있음

  1. SELECT-OPTIONS
  • PARAMETERS는 하나의 값을 입력받을 수 있지만, SELECT-OPTIONS문은 2개의 입력 필드를 가짐.

2. Program 생성

- TCode se80 마우스 오른쪽 클릭
- TCode se38 

2-1. 변수

  • 변수 TYPE 안붙이면 문자열
DATA <변수명> TYPE <data_type> LENGTH n.

DATA: GV_A LIKE MARA-MATNR,
      GV_B LIKE ZTEST_PS-SPEC3,
      LV_A TYPE C LENGTH 10,
      LV_B TYPE I,
      LV_C TYPE N.

2-2. 상수

 CONSTANTS gc_myconst TYPE <type_name> VALUE { literal | IS INITIAL }.

2-3. TYPE & LIKE

DATA gv_myvar TYPE <data_type>.
DATA gv_myvar2 LIKE gv_myvar.
  • TYPE : SAP system 내 존재하는 type 참조할 때 사용.
  • LIKE : 프로그램 내에서 정의된 것 참조할 때 사용.
    즉, local type을 참조할 때 사용. ( 단, TYPE 대신 LIKE도 항상 사용 가능하지만 사용 권장X)
    LIKE는 값을 가져오는 것이 아닌 메모리의 형태를 가져오는 것.

2-3. Structure

STRUCTURE 선언
DATA: GS_MARA LIKE MARA,
      LS_MARA TYPE MARA.

특정 테이블의 특정 필드만 가져와서 씀
DATA: BEGIN OF GS_GUGU,
        1 TYPE I,
        2 TYPE I,
        3 TYPE I,
        4 LIKE MARA-MATNR,
      END OF GS_GUGU.

DATA: GS_A LIKE ZOJT01_S01.

DATA: GS_T LIKE LINE OF MARA.

2-3. Internal Table

  • OCCURS 0: Internal Table의 메모리를 동적으로 할당
프로그램 돌릴 때는 있었다가 사라짐(프로그램 내에서만 사용가능)
DATA: GT_TABLE LIKE MARA OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF GT_GUGU OCCURS 0,
        1 TYPE I,
        2 TYPE I,
        3 TYPE I,
        4 LIKE MARA-MATNR,
      END OF GT_GUGU.
profile
병아리 개발자🐥

0개의 댓글