SAP Yong Next Cloud Academy

SAP SYNC TAW10(3)

秀韩 2022. 6. 29. 22:22

1. Function (3)

 

FG 구조

ㄱ. 펑션 그룹은 프로그램과 비슷하다.

외부에서 접근이 불가하다,

ㄴ. 모듈별로 공유하는 공간이 있다.

(선언된 gv_result는 같은 패키지 안 모듈들에서 공유된다. )

 

Optional과 Pass by Value

ㄷ. Function module → Import   Optional : 체크를 안 한다면 무조건 값을 받아와야 한다. 
체크한다면 선택적으로 값을 보낼 수 있고, 값을 안 보낸다면 Default value의 값을 사용한다.


ㄹ. Pass by Value : 체크한다면 외부 시스템에서 사용하기 위해 값만 넘긴다.
체크 안 하면 Reference(주소 값)로 넘겨 내부 프로그램에서만 사용한다. 

 

ㅁ. Function → FM documentation

 

Test 1
Test 2

ㅂ. 위 Test 1 아이콘으로 테스트 창에 들어갈 수 있으며, Test 2 왼쪽 위의 아이콘으로 테스트해볼 수 있다.

 

Exception
RAISE

ㅅ. Error 처리를 위한 Exeption. If문 속 RAISE문으로 나타낼 수 있다.


※  FM Activate 시 SAPL이 앞에 붙는다.

 

Pattern

 

Pattern 2

※  FM을 찾을 때 : Pattern  *[찾을 내용]* 후 옆 아이콘 클릭.

 

2. BAPI (2)

: BO를 컨트롤 하기 위한 펑션.

 

T-Code

ㄱ. BAPI 트랜젝션 코드로 들어갈 수 있다.

 

Remote-Enabled Module

ㄴ. Remote_Enabled Module : External System에서도 접근할 수 있게 만들어준다.

(평소에 사용할 땐 Regular Function Module을 체크한다.)

 

ㄷ. BAPI는 Business Object Repository(BOR)에 저장되어 있다.

(SAP SYNC TAW10(1) (tistory.com)  - 3. Repository와 연결)


BO와 BAPI
Import

ㄹ. 명찰표가 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
2
3
4
5
6

 

7

1. 파라미터에 carr 값을 변수로 받는다. 

2. 데이터로 carrname 변수를 만든다.

3. 셀렉트 single로 맨 위 한 줄만 받아오며, scarr 테이블에서 가져올거고, carrname에 넣을 것이다. 조건은 파라미터에 넣었던 값과 동일한 scarr테이블의 carrid.

4. 변수가 한 칸짜리라서 CORRESPONDING FIELDS OF를 사용할 수 없다. (에러 남.)

 

8

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