1. ABAP Program => ABAP Dictionary => Database(X)
- Trasp. Table (데이터를 가지고 있는 물리적인 테이블)
- Types
Data Element (Simple Data Type)
Structure
Table Type
2. 변수(Data Object) 선언
DATA: var TYPE <Trap. Table or Data Element or Structure or Table Type in ABAP Dic>.
스트럭쳐 번수 심플 변수 스트럭쳐 변수 인터널 테이블
예) DATA var1 TYPE TABLE of <struct in ABAP Dic>. "인터널 테이블
DATA wa1 LIKE LINE OF var1. "스트럭쳐
3. OPEN-SQL
ABAP Program -> Open-SQL -> Database Interface ->DB-Specific SQL
예) SELECT * FROM T1. "T1에 레코드 100개 루프문은 100번 도는데 DB호출은 단 한 번 이다.
"중요중요 이거를 DATABASE INTERFACE가 해줌
ENDSELECT.
문제 소지가 있는 OPEN-SQL
SELECT * FROM T1.
SELECT * FROM .... (X)
ENDSELECT.
4. 여러건의 데이타 취득 (오른쪽이 더 빠르다. 크게는 차이 안나지만. 뭐가 더 좋은가에 대한 문제는 아님.)
SELECT * INTO wa FROM T1. vs. SELECT * INTO TABLE it FROM T1.
APPEND wa TO it.
ENDSELECT.
SELECT * INTO TABLE it. vs. SELECT * APPENDING TABLE it.
(it 초기화 후 삽입) (it 기존 데이타 살리고 삽입)
5. 여러 테이블에서 한번에 데이터(ARRAY FETCH) 취득
- ABAP Join vs. Database View
(One time 성) (재사용 가능한 JOIN SQL)
6. SAP Table (Standard Table)
SELECT o,
INSERT / DELETE / UPDATE x => 예) 고객 마스터 테이블에 등록하고 싶으면 => BDC 프로그램을 개발 후 업로드
7. 프로그램 호출
동기(Synchronous) 방식 vs. 비동기(Asynchronous) 방식
- 레포트 프로그램 호출 :
-Submit P1.(p1으로 완전히 이동함)
-Submit P1 and return. (P1으로 이동 후 종료 시 호출한 프로그램으로 돌아옴)
- 트랜잭션 호출 :
- LEAVE TO TRANSACTION 'TCODE'. (해당 TCODE로 완전히 이동함)
- CALL TRANSACTION 'TCODE'. (해당 TCODE 종료 후 호출한 프로그램으로 돌아옴)
8. 레포트 프로그램의 Events
- INITIALIZATION
> 변수 또는 Selection Screen 초기화
- AT SELECTION-SCREEN
> 권한 체크 또는 사용자 입력 값 체크 (예) JL 조회시 에러...
> MESSAGE 타입(E,W,X)에 따른 동작 원리가 다름.
- START-OF-SELECTION
> 데이타 취득 및 출력
- END-OF-SELECTION
> 출력을 여기로 보내도 됨...
9. SELECTION SCREEN 구성 할 수 있는 SYNTAX
- PRAMETERS p_var TYPE <타입>.
> SELECT... WHERE Col EQ p_var.
- SELECT-OPTIONS s_var FOR <변수 = Data Object>.
> s_var 인터널 테이블이 생성 with header line
> 무조건 컬럼 4개 인터널 테이블(sing, option, low, high)
> WHERE Col IN s_var.
최근댓글