1. Global Class
1-1. Creating Global Class
ㄱ. Z는 유저 크리에이팅 시 반드시 입력해야 하며, 글로벌 클래스의 이름은 CL로 시작한다.
ㄴ. Inst.Generation엔 Pulic, Private, Protected, Abstract가 있으나, 대부분 Public을 사용.
ㄷ. 메소드를 만든 후 파라미터 클릭.
ㄹ. 입력 받을 값에 Importing, 내보낼 값에 Exporting을 선택, Associated Type에 속성을 정의해준다.
ㅁ. Sourcecode 탭 클릭.
ㅂ. 오른쪽 위 Signature를 누르면 파라미터의 속성을 볼 수 있다.
ㅅ. method코드 밑에 계산식을 작성한다.
1-2. Calling Global Class
ㄱ. Pattern → ABAP Objects Patterns 체크 후 검색
ㄴ. 인스턴스가 아닌 Class/Interface에 만든 Global Class 이름을 입력한다. (*사용도 가능.)
ㄷ. Method 란에 만든 메소드의 이름을 입력한 후 검색.
2. Local Class
ㄱ. 각 섹션은 한 종류만 써놔도 되지만, 다 써놓고 시작하는 게 맞다. (실제로 각 섹션을 다 사용하기 때문.) 또, 순서대로 써야 한다.
※ 로컬 클래스 만든 후 컨트롤 스페이스 (메소드 종류 나옴), 선택 후 쉬프트 엔터( 만들어 논거 당겨옴)
3. Structureed Data Object
ㄱ. 'TYPE scarr'로 선언하면 위와 같은 구조체로 만들어진다.
※ MOVE a TO b :
ⓐ a 변수 속에 5개의 c가 있고, 변수 b가 c를 3개까지밖에 받지 못한다면, 나머지 c 2개는 다음 칸에 채워진다.
ⓑ 데이터의 복사 개념이라 a의 데이터는 사라지지 않는다. (a의 값이 b에 복사됨.)
ⓒ -CORRESPONDING gt_scarr TO gt_scarrinfo. 의 형식으로 쓸 수 있으며, 같은 이름의 필드에 들어가게 된다.
ⓓ [KEEPING TARGET LINES.]를 쓴다면 기존에 가지고 있던 값 밑에 입력해준다.
4. Internal Table
인터널 테이블이란 DB에 접근하여 데이터를 조회하고, Local에 담아두는 것.
4-1. Attributes and Uses of Tables
Index Tables | Hashed Table | ||
Table Kind | STNADARD TABLE | SORTED TABLE | HASHED TABLE |
Index Access | O | O | X |
Key Access | O | O | O |
Key Uniqueness | Non Unique | Unique/Non Unique | Unique |
Use in | Mainly Index Access | Mainly Key Access | Only Key Access |
유니크 : 중복 불가능
논 유니크 : 중복 가능
ㄱ. STANDARD TABLE은 따로 키 지정을 하지 않으면 문자의 필드들이 키가 된다. (문자로 된 것들은 기본적으로 키가 된다.)
ㄴ. 해쉬 테이블은 속도가 빠르다. (지금은 성능이 비슷하다.)
ㄷ. LIKE LINE OF는 위에 선언된 테이블을 구조체로 가져오겠다는 선언이다.
키워드 | 구문 | 설명 |
APPEND | APPEND gs_ to gt_ . | 맨 밑으로 row 한 줄 입력. |
INSERT | INSERT gs_ INTO TABLE gt_ . | <조건>에 맞는 자리에 삽입. |
READ | READ TABLE gt_ INTO gs_ <조건>. | 테이블의 row 한 줄을 구조체에 입력. |
CHANGE | MODIFY TABLE gt_ FROM gs_ <조건>. | <조건>의 데이터를 교체함. |
DELETE | DELETE gt_ <조건>. | <조건>의 row를 삭제함. |
LOOP | LOOP AT gt_ INTO gs_ <조건> ENDLOOP. |
구조체에 <조건>에 맞는 테이블 속 row를 입력함. (계속돌림.) |
DELETE (Several) | DELETE gt_ <조건>. | <조건>에 맞는 행을 삭제함. |
INSERT (Several) | INSERT LINES OF gt_ 1 <조건1> INTO gt_2 <조건2>. |
<조건1>에 맞는 1번 테이블 속 행을, 2번 테이블 속 <조건2>에 맞는 자리에 삽입. |
APPEND (Several) | APPEND LINES OF gt_1 <조건> TO gt_2. |
1번테이블 속 <조건>에 맞는 행을 2번 테이블에 밑에서부터 삽입 . |
※ WITH HEADER LINE은 테이블과 스트럭쳐를 같이 만든다. Header line은 gs_ 와하는 역할이 같다. 지금은 테이블과 스트럭쳐의 이름이 혼동되므로 쓰지 않는다(지양한다). LOOP에서 INTO 없어도 실행된다.
※ WITH TABLE KEY는 테이블의 키를 전부 선언해줘야 오류가 나지 않는다.
※ scarr 테이블과 sflight 테이블의 겹쳐지는 값을 셀렉트 문으로 뽑아올 수 있다. 코레스펀딩 오브를 반드시 써줘서 오류가 나지 않게 해야 한다.
REFRESH | 헤더라인이 있는 경우, 바디 값만 초기화. |
CLEAR | 헤더라인이 있는 경우, 헤더라인만 클리어. |
FREE | 헤더라인이 있는 경우, 메모리 공간 전체를 날림 (공간 자체를 삭제). |
실습 물)
※ 펑션이 덤프 날 때에는 그룹 액티브를 실행해서 다른 펑션들의 오류도 잡아주자.
여기서부터는 일기) 오늘도 하루를 잘 끝냈다. 실습 자체는 쉬웠는데, 펑션이 자꾸 덤프 나서 하루 종일 만졌다. 펑션만 5번 쓴 듯하다. 오늘은 애매했던 내용들도 어느 정도 이해했다. 헤더 라인과 코레스펀딩 내용. 야무지다 야무져. 생각보다 일찍 끝낸 김에 일찍 자야겠다.
'SAP Yong Next Cloud Academy' 카테고리의 다른 글
SAP SYNC TAW10-2(2) (0) | 2022.07.05 |
---|---|
SAP SYNC 2주차 개인과제 (0) | 2022.07.03 |
SAP SYNC TAW10(3) (0) | 2022.06.29 |
SAP SYNC TAW10(2) (0) | 2022.06.28 |
SAP SYNC TAW10(1) (0) | 2022.06.27 |