[ABAP] 기초 정리

SeoYoung Jung·2022년 9월 20일
0
post-custom-banner

ALV? -> UI 관련 GRID

abap list viewer의 약자로 report에서 데이터를 조회하거나 조회된 데이터를 가공하는 목적으로 실무에서 사용 / 데이터를 가공하여 정렬하거나 데이터의 합계를 구하거나 local파일로 저장 등의 다양한 기능을 코딩없이 사용하도록 sap에서 제공한 기능

ALV기능

ALV는 함수를 이용하는 방법과 GRID 컨트롤을 이용하는 크게 두가지 방법이 있는데 이 두 가지 방법은 내부적으로 유사한 구조와 기능을 가지고 있습니다.
-function ALV, GRID ALV, SALV(New ALV)

*ALV 출력
REUSE_ALV_GIRD_DISPLAY : 인터널 테이블에 담긴 데이터를 ALV_GRID로 출력하는 FUNCTION

*인터널 테이블 -> FEILDCAT
REUSE_ALV_FEILDCATALOG_MERGE : 인터널테이블, DB테이블의 필드들을 모두 필드카탈로그 인터널테이블에 담아준다.

REUSE_ALV_GRID_DISPLAY : 필드카탈로그와 인터널테이블의 데이터를 Funcion ALV로 조회
USER_COMMEND, GT_EVENTS, STATUS_BA등 같이 사용해야 ALV에 제대로 적용된다.

EXPORTING 인수 : Function으로 던져주는 parameter 인수값들 정의
IMPORTING 인수 : Function으로부터 받을 값을 paramer 인수값에 맞게 정의한다.

ty: type
//자재에 대한 구조체
TYPES: BEGIN OF ty_matdata.
matnr TYPE c LENGTH 15, //자재 번호
mattext TYPE c LENGTH 30,// 자재 설명
matunit TYPE c LEHGTH c, //자재 단위
END OF ty_matdata

//ty-matadata 구조체를 자료형으로 가지는 로컬 테이블 lt_matdata 선언

ls : local structure ty
DATA ls_matdata TYPE ty_matdata.
DATA lt matdata TYPE TABLE of matdata.

//루프문을 통해 테이블 내 전체 데이터 출력하기
LOOP at lt_matdata into ls_matdata
WRITE / ls matdata.
END LOOP

Elementart Data Type : X , C,N,D,T,I,F,P
Complex Types : Structure, Table
Reference Types : 클래스, 인터페이스 등의 항목의 인스턴스 참조시 사용

ABAP 프로그램 : INSERT,SELECT (DML)
ABAP 딕셔너리 : CREATE ALTER (DDL)

CALL FUNCTION 'REUSE_ALV_FEILDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = C_TABLE
CHANGING
CT_FIELDCAT = GR_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_EROOR = 2
OTHERS = 3

IF SY-SUBRC <> 0.
MESSAGE E300 WITH TEXT-001.
EXIT.
ENDIF.

*Field catalog modify
LOOP AT GT_FIELDCAT INTO GS_FIELDCAT.
WHEN 'MATNR'
CASE GS_FIELDCAT-HOTSPOT = C_X.

WHEN 'TXT'.
  GS_FIELDCAT_EDIT =C_X.
  GS_FIELDCAT-SELTEXT_L = '설명1'.
  GS_FIELDCAT-SELTEXT_M = '설명2'.
  GS_FIELDCAT-SELTEXT_S = '설명3'.
WHEN OTHERS

ENDCASE.
MODIFY GT_FEIDCAT FROM GS_FEIDCAT
CLEAR : GS_FIELDCAT

CALL FUNCTION 'RESUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY_REPID
I_CALLBACK_PF_STATUS_SET = C_PF_STATUS
I_CALLBACK_USER_COMMAND = C_USER_COMMAND
I_GRID_TITLE = GV_TITLE
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT - GT_FIELDCAT
IT_SORT = GR_SORT
IT_EVENT = GT_EVENTS
TABLES
T_OUTTAB = GT_DATA.

*Subtoutine
FORM PF_STATUS USING PS_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS '1000'.
SET TITLEBAR '1000'.
ENDFORM

PARAMETERS문

-DEFAULT F :DATA 문의 VALUE절과 동일, 변수의 초깃값을 설정, 프로그램을 실행시 기본값이 화면에 표시되면서 값을 다시 입력받음
-TYPE TYPE : 변수의 형을 선언
-DECIMALS dec : 소수점 이하의 자리 수를 정의 적용 가능한 변수형은 P type
-Like g : Data 문에서의 Like 옵션과 동일하며 g의 변수형을 그대로 인용하는것 , g가 문자형이면 선언된 변수도 문자형이 되는 것

  • MEMORY ID PID : Global Memory 변수 pid 선언한 변수에 할당
  • MATCHCODE OBJECT mobj: matchcode object를 변수에 할당 4글자
    -OBLICATORY : 필수적으로 값을 입력받고. 입력하지 않으면 오류로 처리함

REPORT 어쩌고 NO STANDARD PAGE HEADING.

TABLES mara
DATA st_test1 TYPE c LENGTH 5.

PARAMETERS: p1
PARAMETERS: p2 DEFAULT 'A'
PARAMETERS: p3 TYPE c LENGTH 'A'
PARAMETERS: p4 TYPE p DECIMALS 2.
PARAMETERS: p5 LIKE st_test1.
PARAMETERS: p6 LIKE st_test1 NO_DISPLAY
PARAMETERS: p7 LIKE st_test1 LOWER CASE.
PARAMETERS: p8 TYPE c LENGTH 14 OBLICATOry
PARAMETERS: p9 AS CHECKBOX
PARAMETERS: p10 RADIOBUTTON GROUP g1, p11 RADIOBUTTON GROUP g1.
PARAMETERS: p12 LIKE st_test1 VISIBLE LENGTH 3.

SELECT-OPTIONS:s_matnr FOR mara-matnr.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
PARAMETERS: p13 AS CHECKBOX.
PARAMETERS: p14 AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION SCREEN(위에 사진 p13, p14 파라미터 구성부분)

입력조건으로 화면을 구성할 수 있도록 해준다.
즉 SELECT - OPTIONS 혹은 PARAMETERS에 값을 주는화면을 만들어주는것으로 리포트 프로그램이 실행되면 SELECTION SCREEN이 자동 실행
SELECTION SCREEN은 INCLUDE프로그램에 포함되는 것이 코드의 가독성을 위해서 좋다.

REDUCE

Table 생성

필드명 + data element / Pre-defined date type
Key = Unique 제약조건
Initial Values : 빈값이면 선언 데이터형의 기본값
CBO Customer Bolt On => MANDT 라는 클라이언트 필드 기본 - 한 시스템 안에서 클라이언트 번호 나누어 테이블이 여러개인것 처럼 데이터를 격리할때 사용

Technical Setting

: 테이블의 범주 Size 세팅, Delete Update의 DB log 쌓을지 여부 결정

Data Class

: 테이블이 논리적으로 저장되는 DB의 물리적 영역 정의
데이터 건수가 변경의 빈도수에 따라 물리적으로 유리한 DB위치에 할당

APPL0: Master data transparent tables
APPL1: Transaction data transpaerent tables
APPL2: Organization and customizing

Size Category

: 저장가능한 데이터 건수를 지정하여 DBMS가 고정공간을 얼마나 가져갈지
지정 크기 넘어도 데이터 저장안되는 건 아님

Log data changes

: Delete Update의 DB log를 쌓을지의 여부를 세팅한다

ABAP에서는 금액과 수량을 위해서 Data Type 두가지 제공

금액 : CURR (Currency field stored as DEC)
수령 : QUAN (Qauntity field points to a unit field with format UNIT)

Table 생성시 FK로 지정 필드는 -> Check Table를 가질 수 있다.
단, FK로 지정된 필드와 동일한 Data Element를 Key Field로 사용하는 Table만 Check Table로 사용가능

Selection method

:search help를 만들 데이터를 가져올 원천을 정한다. table View가 가능
View : Database View, Projection View Help View ㄱㄴ
Table : Text Table 경우 자동표시

Dialog Type

Dialog depends in set values : 적중리스트 기준 100이상이면 C로 이하이면 D로 조회
Display values immediately : 즉시 리스트 조회
Dialog with values restriction : 사용자로 부터 값을 받아야 리스트 조회

Serach help exit

Fuction을 등록하여 Search help 화면과 데이터를 개발자가 코딩으로 제어할 때 사용한다.

IMP import ; Search Help를 띄우기전 Search Help를 사용하는 Object로
EXP
LPos
SPos
SDis

Data Type

  • Data Element : 어떤 기술적 속성을 가질것인가?
  • Element Type(Domain, Predefined Type, Built-in- type)
  • Referenve Type : Class, Interface 등을 참조 type으로 지정하여 사용한다.

No Charaters
Decimal Places
Output Length

Conversion Routine - 테이블값 != 실제 화면에 보이는 값
Value Range - Domain이 가질 수 있는 값 지정, 넣을 수 있는 값의 범례를 제공
1) Single Value 하나의 값과 그 명칭
2) Intervals 입력가능한 범위 Single Value랑 겹치면 Active시 오류
3) Value Table 같은 도메인 가진 필드가 존재하는 테이블 지정해서 그 테이블 필드에 저장된 값으로도 제한 가능

Data 변수 : 사용자 ID, 월급같은 정보를 담는 공간 (필드)
data 구조체 : 사용자정보로 사용가능 (여러 필드의 집합)
data 인터널 테이블 : 스터디원 사용자정보를 모두 담고 있는 데이터 공간

구조체 : Structure = Work Area =Header Line
인터널 테이블 : Internal Table = body

어떤 데이터 담음?

하나의 필드(데이터를 담음), 숫자(정수형, 실수형, 부동소수) 문자(문자, 문자열 등등)

Data type 1.

Predefine Type(Data의 가장 내부적인 커널영역에 존재하는 형태)

1.변수선언

DATA : gv_data TYPE i.
DATA : gv_data TYPE c/

2. 구조체 선언

DATA : BEGIN OF gv_str,
a1 TYPE c.
a2 TYPE i
a3 TYPE i
END OF gv_str.

3. 인터널 데이블 선언

DATA : gv_itab TYPE TABLE OF c.

Data type 2

ABAP Program 상에서만 존재하는 Data Type 새로 생성해서 Program 내 사용

1. 변수선언

Types : ty_data type i.

2. 구조체 선언

TYPES : BEGIN OF tys_data,
a1 TYPE c,
a3 TYPE i,
a3 TYPE i,
END OF tys_data.

Data : gv_tdata TYPE ty_data.

3.인터널 테이블 선언

Data : gy_tdata TYPE TABlE OF tys_data/
DATA : gy _sdta TYPE TABLE OF ty_Data/

Data Element = Z : CBO이자 운영에 반영, E: Data Element
Y:CBO이지만 운영에 반영하지 않는다.

profile
뚱땅뚱땅개발자
post-custom-banner

0개의 댓글