1. Calling Programs Synchronously
1-1. Time Floor 1 및 SUBMIT
ㄱ. Type-1 프로그램 (Report)을 호출할 때 SUBMIT구문을 이용하여 Selection Screen의 Input 필드에 값을 입력.
ㄴ. 타 프로그램 호출 후 복귀 O.
ㄷ. SUBMIT ... AND RETURN.
1-2. Time Floor 2 및 SUBMIT
ㄱ. 타 프로그램 호출 후 복귀 X.
ㄴ. SUBMIT ...
ㄷ. WITH : 셀렉션 스크린에 정의된 셀렉트 옵션 혹은 파라미터로 선언된 변수들에게 값을 넘겨줄 경우 사용.
※ SUBMIT ... VIA SELECTION-SCREEN AND RETURN.
ⓐ 프로그램의 셀렉션 스크린을 띄움
ⓑ SUBMIT 프로그램의 셀렉션 스크린을 띄움
ⓒ 결과를 보여줌
1-3. Synchronous Transaction Calls
ㄱ. LEAVE to TRANSACTION 'ZD03_TRAN_called'. : 호출한 프로그램을 종료하고 새로운 프로그램을 수행한다. 호출된 프로그램을 종료하게 되면 처음 실행된 메뉴 화면으로 돌아간다.
ㄴ. CALL TRANSACTION 'ZD03_TRAN_called'. : 프로그램의 데이터를 저장하고 트랜잭션을 호출한다.
ㄷ. AND SKIP FIRST SCREEN : 메모리 파라미터를 이용하여 셀렉션 스크린을 건너뛰고 바로 아웃풋 리스트가 조회되게 한다.
모드 | BDC실행 시 |
A | 전체 실행 |
E | 에러난 부분만 본다 |
N | 스킵한다 |
2. BDC
Batch Data Communication. 사용자가 매크로를 사용하여 SAP 프로그램을 자동으로 수행하는 형태의 기능과 유사.
(녹화를 하나씩 해서 사용한다.)
3. Memory 영역
3-1. External Session과 Internal Session
ㄱ. User session : 로그인 시 화면
ㄴ. SAP Memory : External Session 사이 공유 가능, SET/GET PARAMETERS가 해당 (프로그램으로 단일 값만 넘길 수 있다)
- SET PARAMETER ID/ 'car' /FIELD/ ls_conn-carrid. → SAP memory에 'car' ID로 저장/ FIELD(TYPE)은 ls_conn-carrid.
- GET은 SAP Memory에서 가져옴.
ㄷ. ABAP Memory : Internal Session 사이 공유 가능, Submit과 Call Transaction, Import와 Export가 이에 해당 (자유롭게 공유 가능하다)
ㄹ. External Session : 윈도우 창, 윈도우 기본 6개 , 최대 16개까지 열 수 있음
ㅁ. Internal Session : 프로그램, 9개까지 열수 있음
- Main Program : 자기 혼자서 실행 가능한 Program (Report Program)
- APG : F.G , G.L 등 누가 호출을 해줘야 하는 Program
3-2. Memory Management for Strings
ㄱ. 스트링
- 가변적(동적)이다. 데이터 공간이 가변적으로 늘어나고 줄어든다.
- 헤더에서 수에 맞는 칸이 생성되고, 클리어 시 데이터 칸 자체가 사라진다.
ㄴ. 인터널테이블
- 가변적이고, 헤더를 가지고 있어 2중 구조이다. (2단계를 거친다)
- APPEND 시, ROW1 , ROW2면, Data1 , Data2로 하나하나 가리킨다.
- Clear 하게 되면 공간을 삭제한다. (table 바디 삭제)
- FREE 하게 되면 헤더 라인(wa)까지 삭제된다.
ㄷ. gv_string1 = gv_string2
- gv_string2가 gv_string1의 레퍼런스를 참조한다. (헤더를 가리킨다.)
- gv_string1의 값이 바뀔 경우, 기존의 gv_string1의 값은 그냥 두되, 새로이 바뀐 값을 복사해놓는다.
- 별 다른 지칭이 없을 경우 gv_string2는 그대로 이전의 gv_string1을 참조한다.
- 스트링이 아닌 테이블의 경우, 헤더가 다른 테이블의 데이터를 바로 참조한다.
4. ORDER BY Addition
WHERE에서 한 번 거르고 ORDER BY에서 두 번째 거른다.
기본으로 ASCENDING(올림차순), DESCENDING(내림차순)은 입력 시 적용된다.
ㄱ. 디스팅트는 중복 값을 지워준다.
5. Aggregate Experssions
ㄱ. Open SQL 수집 기능
기능 | 의미 | 결과의 데이터 타입 |
MIN( col ) | 최소 값 | col과 동일 |
MAX( col ) | 최대 값 | col과 동일 |
SUM( col ) | 합계 | col과 동일 |
AVG( col ) | 평균 | Float (F, 실수) |
COUNT(*) | 결과 값들의 row수 | Integer (정수) |
ㄴ. GROUP BY
ⓐ carrid와 connid가 같아야 묶인다.
ⓑ sellect에 carrid와 connid가 없다면 오류가 난다.
ㄷ. HAVING
ⓐ 더 자세하게 걸러준다.
6. WHERE
연산자 | 의미 |
IN(1, 2) (띄어쓰기 금지) | 여러 조건에 속한 경우의 값을 가져옴. |
BETWEEN ...1 AND ...5 | 1에서 5사이의 값을 가져옴. |
LIKE | String 비교 : * = %(%ab%), _5_(3글자일때) |
IN seltab | 셀렉트 옵션에서는 in을 쓴다. |
※ HANA에서는 조건으로 다 거른 다음 가져오는 것을 선호한다. (신 버전, New SQL)
※ 보통은 루프를 돌리는 것을 선호한다. (구 버전)
ㄱ. 테이블의 필드를 조건으로 주고 싶을때 '~'기호를 사용. (일리아스(AS)를 사용해도 된다.)
7. Target Areas
ㄱ. Result-Set : DB의 결과를 말해줌.
ㄴ. Target Area : Single (wa ) , multi ( itab )
ㄷ. SELECT~ENDSELECT는 Target Area를 single로 돌리지만, DB에는 Table로 담기게 된다. (루프와 비슷하다.)
ㄹ. into는 기존의 값을 삭제하고 들어가지만, append는 기존 값 밑에 복사한다.
8. Package Size
ㄱ. 테이블에 10줄씩 들어간다. (무조건 타겟은 테이블)
ㄴ. into는 기존의 값을 삭제하고 들어가지만, append는 기존 값 밑에 복사한다.
9. ABAP JOIN
9-1. INNER JOIN
ㄱ. 두 테이블을 비교, 공통으로 있는 값만 가져온다.
ㄴ. ON엔 조건을 넣는다.
9-2. LEFT OUTER JOIN
ㄱ. FROM의 테이블이 LEFT, JOIN의 테이블이 RIGHT이다.
ㄴ. 왼쪽을 기준으로 오른쪽 테이블에 없는 공간은 빈칸으로 채운다. (왼쪽에 AA가 있고 오른쪽에 없다면 gt_list에 AA만 채워놓는다.)
ㄷ. AA가 3개라면 3개 다 채운다.
월요일 내용)
1. 일리아스 : 별명 같은 것. AS로 줄 수 있다. 너무 긴 테이블 명을 줄이기 위해 사용한다.
2. '~' : 테이블의 필드명을 가리켜준다.
3. so_ : SELECT-OPTIONS, 'SELECT-OPTIONS so_(변수명) FOR (타입명)' 식으로 쓴다.
여기서부터는 일기) 월요일에 빠진 건 조금씩 듣긴 했는데, 아직 spfli가 뭔지 모르겠다. 아 그리고 클라이언트 핸들링도. 조금만 더 찾아보고 자야겠다.
P.s.) spfli는 테이블 명이었다.
'SAP Yong Next Cloud Academy' 카테고리의 다른 글
SAP SYNC TAW10-3(2) (0) | 2022.07.07 |
---|---|
SAP SYNC TAW10-3(1) 및 개인 과제 (0) | 2022.07.06 |
SAP SYNC 2주차 개인과제 (0) | 2022.07.03 |
SAP SYNC TAW10-2(1) (0) | 2022.06.30 |
SAP SYNC TAW10(3) (0) | 2022.06.29 |