Function Group 생성 및 기본 구조
1. Function Group 생성
Function Group 및 Function Module을 만드는 방법은 두 가지가 있다.
1) SE80을 이용하는 방법
2) SE37을 이용하는 방법
1) SE80을 이용하는 방법
SE80에서 해당 Function Group을 만들 개발 클래스를 선택 후 우클릭 후 Function Group을 선택한다.
1) SE37을 이용하는 방법
SE37에서 Goto -> Function Group 선택 후 Create Group을 선택 후 개발클래스 및 CTS를 입력한다.
2. Function Group 구조
SE80에서 Function Group을 더블클릭 한 후 화살표(선택 : F2)를 클릭하면 하기 화면을 확인할 수 있다.
기본적으로 Function Group을 만들면 SAPZL가 접두사로 입력되어 Function Pool이 생성된다.
Function Group 네이밍룰 : SAPZL + Function Group명
이 SAPZLEX_FUNTION_GP라는 메인 프로그램은 아무것도 포함하지 않고 오로지 다음과 같은 INCLUDE을 포함한다.
1) L + Function Group명 +TOP
-> 하기 사진과 같이 FUNCTION-POOL이라는 구문을 포함하고 전체 Function Group에 사용가는 한 전역 데이터 선언된 것을 포함한다. (하기 사진의 GV_BUKRS는 Function Group안의 어떠한 Function Module에서도 사용 가능하다)
2) L + Function Group명 + UXX
-> UXX에서는 L + Function Group 명 + U01 순서로 생기는 인클루드 문을 포함한다. 이 인클루드 문은 각 Function Module을 포함하는 것이며, 첫번째 생성한 Function Module은 U01, 두번째는 U02 순서대로 만들어진다.
(단, 3개의 Function Module을 만들어 U01, U02, U03 이 생성되었을 때, U02를 삭제하고 네 번째 신규 Function Module을만들지어도, 빈 숫자인 U02로 만들어진다.)
3) L + Function Group명 + FXX
-> Function Module에서 사용한 Subroutine(서브루틴)을 담는 Include문으로, 개발자의 의도에 따라 F01~FXX 등 원하는 번호에 채번이 가능하다. 이 Subroutine은 FXX문에 선언되어 있으면, 다른 Function Module 어디서도 PERFORM문을 통해 호출하여 사용할 수 있다.( 단, 공통 기능을 하는 Subroutine은 한 곳에 모아두고 유지보수 하기 편하게 사용하고, 단지 구문 정리, 로직 정리를 위해 사용한 Subroutine들은 유지보수가 용이하게 각 Function Module 당 하나의 FXX Include 문을 선언하는 것이 좋다고 생각한다)
모든 Function Group안의 Function Module은 Function Group의 전역 데이터 영역에서 선언된 데이터 선언부에 접근이 가능하다(TOP문에서 선언된). 이러한 이유로, 같은 데이터를 사용하는 모든 Function Module을 하나의 Function Group에 위취시키는 것이 각 Function Module을 위한 Function Group을 만드는 것 보다 좋다. 예를 들어, 만약 너가 개발하는 Function Module 몇 개가 모두 하나의 같은 인터널 테이블을 사용한다면, 너는 Function Module 모두를 하나의 Function Group에 넣고 인터널 테이블을 전역 데이터로 선언하면 된다.
Function Group은 Executable Program과 Module Pool과 같이, 스크린을 가질 수 있다. 스크린의 유형에 따라, Function Group의 메인프로그램 안에서 Dialog Module과 Event Block을 통해서 사용자가 값을 입력할 수 있도록 할 수 있다.
(예시로, L사의 그룹 사중 한 곳에서 Function Group에서 화면을 만들어, SAP GUI 로그인시 SAP ID, PW입력하는 것뿐만 아니라 화면을 구현한 경험이 있음)
데이터 선언은 FUNCTION ~ ENDFUNCTION 구문 사이로 구성된 영역(하나의 Function Module) 에서 이루어 졌다면 그 해당 Function Module에서 사용하는 로컬(Local) 변수를 선언한 것이다. 이러한 데이터 선언은 오직 그 데이터가 선언된 해당 Function Module에서 접근가능하고 유효하다.
'SAP ABAP 개발 및 설명 > SAP Function Module' 카테고리의 다른 글
Function Module 호출 및 예시 (0) | 2022.12.29 |
---|---|
Function Module(함수) 생성 및 Tab 설명 (0) | 2022.12.24 |
Function Module 개요 (0) | 2022.12.20 |
Function Builder 개요 (0) | 2022.10.03 |