R/3 Architecture
Sap는 R/3 기본적으로 세개의 Layer를 분류
1. R/3 Architecture
1. Presentation Layer
개인 컴퓨터를 의미 SAP GUI를 구성하는 소프트웨어 컴포넌트 정보를 가지고있다
R/3 시스템과 사용자 간의 인터페이스 제공
2. Application Layer
SAP의 모든프로그램은 Application Server에서 구동. SAPGUI는단지 터미널의 역할만 한다.
운영 서버의 Application Layer는 하나 또는 여러 개의 Application Server와
하나의 Message Server로 구성된다. Message Server는 Application Server와 통신하며
부하가 적은 서벼에 사용자가 로그온되도록 한다. 여러 개의 Application Server를 구동하
는 것은 시스램의 부하를 분산하기 위한 목적이다. SAP에는 Appli떠tion Server 레벨에서
Local Buffer가 존재하며 , ABAP DictionaIY 테이블 레벨에서 버퍼 설정을 하게 되면 데
이터베이스까지 접근하지 않고 Local Buffer에서 데이터를 읽어온다. 이것은 SAP의 성능
을 향상시키는데 기여하며, OPENSQL을 사용할 때만 가능하다.
3.Database Layer
SAP의 모든 데이터를 데이터베이스 테이블에 저장하는 계층
마스터 데이터 트랜잭션 데이터 R/3시스템의 모든 데이터를 저장
ABAP 개발자는 ABAP Dictionary를 통해 데이터 베이스구조 스키마를 관리
2. SQL 정의
Structured Query Language ABAP 프로그램의 OPEN SQL에서는 DML언어만 사용
DML 데이터 처리 언어
DDL 데이터 정의
DCL 데이터 제어언어
3. SQL 종류
1. Open Sql
ABAP 명령어로 구성서로 다른 DBMS환경 오라클 MS_SQL과 같은 DB에서도 같은 명령어를 사용한다
SELECT문과 같은 DML사용 Local Buffer를 사용 네이티브보단 사용법이 간단하다
OPEN SQL의 Command Set(SELECT. UPDATE. DELETE 등)을 사용할 수 있다.
OPEN SQL로 해결이 되지 않는 복잡한 SQL은 N~πVESQL을 이용할 수 있다.
1. Natice Sql
데이터 베이스에 직접 접속하여 DML DDL언어를 사용
4. OPEN SQL 데이터 읽기
1. Reading Data 명령어
1. SELECT (result)
SELECT 구문은 조회하고자 하는 테이블 필드명을 나열할 수 있으며 , 한 건
또는 여러 라인을 조회.
2. INTO (target)
SELECT에서 읽어온 데이터를 변수에 저장하며 이 변수를 ABAP 프로그램
에서사용.
3. FROM (source)
FROM 구문은 SELECT 할 테이블을 지정해준다.
위치는 INTO 이전/이후 모두 둘 수 있다.
4. WHERE (cond)
조건 절
5. GROUP BY (FILED)
여러 라인의 결과를 그룹으로 지정하여 하나의 결과를 얻을 수 있다. ,
그룹별 합계를 구할 경우 GROUP BY를 사용.
6. HAVING (cond)
GROUP의 조건을 설정하는 WHERE 구문이다.
7. order by (source)
조회된 데이터를 정렬
1.SELECT 구문
데이터베이스 테이블에서 필요한 데이터 READ
1. Single Line
하나의 라인 값을 읽어오고자 할 경우 사용 단 정확한 조건을 정확하게 알고 있어야한다
Where조건에 유일한 킷값이 추가되어야 한다
2. Several Lines
여러 라인을 조회할때 사용 이것을 abap에서는 internal table이라고 부른다.
인터널 테이블은 abap 메모리에 생성되는 데이터를 저장 할 수 있는 가상의 테이블
INTO 구문의 결과가 저장되는 곳이 인터널 테이블이 아니라 필드 또는 WORK AREA일 때에 ENDSELECT를 사용
인터널 테이블을 사용하여 작성하는것이 더 효율적
3. AS
칼럼 명에 별명을 지정
2. INTO 구문
SELECT 구문에서 조회한 결과 값을 저장하는 기능을 수행한다
1) 구조체 Work Area
여러 칼럼의 한라인만 조회하고자 할경우 Work Area에 값을 할당한다. * 에스터리스트 기호를 사용하면 전체 칼럼을 읽어오고
CORRESPONDING FIELDS OF 구문을 사용하면 Work area의 동일 필드명에 값을 할당한다
* 비효율적이다.
2) Internal Table
여러라인을 조회할 경우 인터널 테이블을 사용한다
3) Single Field
테이블의 개별 칼럼을 조회하거나 2개의 필드를 조회할 경우
SELECT carrid connind into (gv_carrid, gv_connind) from sflight.
3.FROM 구문
SELECT 할 대상 테이블을 지정한다
이 다음에는 하나의 테이블을 지정 혹은 여러개의 테이블을 JOIN 가능
3.4 INNER JOIN OUTER JOIN
4.WHERE 구문
SELECT 적중 수를 줄요 주고 사용자가 원하는 데이터를 정확하게 선택 할 수 있도록 하는 조건
EQ, = 같음
NE <> >< 같지않음
LT < 작음
LE <= 작거나 같음
GT > 큼
GE >= 크거나 같음
EX)
WHERE COLl BETWEEN 1 AND 10
WHERE COL2 LIKE ’ ABC ’
IN구문을 사용할시 여러 조건에 속한 경우 값을 가져온다
IN('서울','조건')과 같이 사용
5. Grouping 구문
AVG,COUNT,MAX,MIN,STDDEV(표준편차),SUM,VARIANCE(분산)