1. Function (3)
ㄱ. 펑션 그룹은 프로그램과 비슷하다.
ㄴ. 모듈별로 공유하는 공간이 있다.
(선언된 gv_result는 같은 패키지 안 모듈들에서 공유된다. )
ㄷ. Function module → Import → Optional : 체크를 안 한다면 무조건 값을 받아와야 한다.
체크한다면 선택적으로 값을 보낼 수 있고, 값을 안 보낸다면 Default value의 값을 사용한다.
ㄹ. Pass by Value : 체크한다면 외부 시스템에서 사용하기 위해 값만 넘긴다.
체크 안 하면 Reference(주소 값)로 넘겨 내부 프로그램에서만 사용한다.
ㅁ. Function → FM documentation
ㅂ. 위 Test 1 아이콘으로 테스트 창에 들어갈 수 있으며, Test 2 왼쪽 위의 아이콘으로 테스트해볼 수 있다.
ㅅ. Error 처리를 위한 Exeption. If문 속 RAISE문으로 나타낼 수 있다.
※ FM Activate 시 SAPL이 앞에 붙는다.
※ FM을 찾을 때 : Pattern → *[찾을 내용]* 후 옆 아이콘 클릭.
2. BAPI (2)
: BO를 컨트롤 하기 위한 펑션.
ㄱ. BAPI 트랜젝션 코드로 들어갈 수 있다.
ㄴ. Remote_Enabled Module : External System에서도 접근할 수 있게 만들어준다.
(평소에 사용할 땐 Regular Function Module을 체크한다.)
ㄷ. BAPI는 Business Object Repository(BOR)에 저장되어 있다.
(SAP SYNC TAW10(1) (tistory.com) - 3. Repository와 연결)
ㄹ. 명찰표가 BO, 톱니가 BAPI를 의미한다.
ㅁ. BAPI는 외부 프로그램에서도 사용하기 위해 Pass by Value가 항상 체크되어 있다.
P.s. ) Global Class
Class | 정의 |
Global class | Class library 안에서 전역적(Global)으로 선언한 클래스. |
Local class | 메인 프로그램 안에서 지역적(Local)으로 선언한 클래스. |
※ SE24로 Class Builder에 들어갈 수 있다.
※ OOP라고 한다.
※ class는 붕어빵 틀, 객체(object)는 붕어빵.
※ instance, 속성(attribute, 변수(?)), 객체 변수, Static 등등 용어가 많다. (아직 잘 모름.)
※ Public은 외부 접근이 가능, Private는 외부 접근이 불가능.
※ 직접적인 접근은 안되며, 객체를 통해서 들어와야 한다.
※ Global Class Method Parameter의 Type은 Import와 Export로 쓴다.
※ Exeption은 앞에 CX를 붙인다.
※ 메소드는 =>를 쓰며, TRY문과 CATCH문으로 IF문 속 RAISE문과 비슷한 역할을 한다.
※ 객체를 먼저 만들고 인스턴스를 주는 방법이 있다면, 동시에 만드는 방법도 있다.
※ =>이 아닌, ->도 있다. (아직 잘 모름.)
실습)
1. 파라미터에 carr 값을 변수로 받는다.
2. 데이터로 carrname 변수를 만든다.
3. 셀렉트 single로 맨 위 한 줄만 받아오며, scarr 테이블에서 가져올거고, carrname에 넣을 것이다. 조건은 파라미터에 넣었던 값과 동일한 scarr테이블의 carrid.
4. 변수가 한 칸짜리라서 CORRESPONDING FIELDS OF를 사용할 수 없다. (에러 남.)
1. 위와 동일하지만 이번엔 구조체로 받아온다(만든다).
2. 데이터 역시 구조체로 만든다. (받아 올 값이 구조체라서)
3. 이번엔 필드를 다 가져오려고 *를 썼다. 위와 동일하게 scarr테이블에서 가져오며, gv_carrname에 '같은 이름으로 된 필드에 넣을 것이다.'라는 의미로 CORRESPONDING FIELDS OF를 썼다.
(타입을 구조체로 만들었으면서 CORRESPONDING FIELDS OF를 안쓴다면 하나만을 가져올 때(변수 하나, 'SELECT carrname') 제일 첫 번째 칸으로 넣어버린다(MANDT).
4. 위의 single과는 다르게 여러 개를 가져오는 거라서 끝에 ENDSELECT를 꼭 붙여야 한다.
여기서부터는 일기) 8번 실습에서 select*로 가져오면 CORRESPONDING FIELDS OF를 쓰나 안쓰나 똑같나?? 나중에 물어봐야겠다. 정리할게 생각보다 많았다. 글로 쓰기 애매해서 더 오래 걸린 걸 지도. 이지 아밥 2.0 책이 왔는데 다 젖어있었다. 화딱지 난다. 교환 처리하느라 바빴다. 오늘 글로벌 클래스까지 진도를 나갔는데 각 용어가 너무 애매했다. '4.'으로 정리하기가 미안해서 그냥 'P.s.'로 적었다. 클래스는 자바 클래스 관련 글을 읽어놔야겠다. 좀 낫다 하니까는. 양이 많아서 머릿속에 때려 박는 느낌이 자꾸 든다. 매일 정리하느라 진땀 빼지만 많이 힘들지는 않다. 논 시간이 길어서 그런가 오히려 집중할 수 있는 게 더 행복한 느낌. 오늘은 그만 쓰고 자야겠다.
'SAP Yong Next Cloud Academy' 카테고리의 다른 글
SAP SYNC 2주차 개인과제 (0) | 2022.07.03 |
---|---|
SAP SYNC TAW10-2(1) (0) | 2022.06.30 |
SAP SYNC TAW10(2) (0) | 2022.06.28 |
SAP SYNC TAW10(1) (0) | 2022.06.27 |
SAP SYNC 5일차 BC100(3) 및 실습물 (0) | 2022.06.26 |