SAP WD4A – FPM OIF 기본 구성
여기서는 기본적인 사항만 확인하고 자세한 내용은 추후에 작성하겠습니다.
아래는 SAP SRM system 의 Standard 화면을 예시로 했다.
FPM Configuration 셋팅
SU01 -> USER Parameter 에 다음을 추가한다.
FPM_CONFIG_EXPERT X
그러면 우측 상단에 어플리케이션 계층구조 라는게 나오게된다.
FPM_OIF_COMPONENT 를 사용하고 있다.
오브젝트 인스턴스 플로어플랜 에 들어간다.
좌측 조회의 전역세팅을 확인한다.
해당 Component 는 IF_FPM_OIF_CONF_EXIT 이 구현된 WD Component 이다.
해당 기능을 사용하면 OVERRIDE_EVENT_OIF 이라는 Method 가 생긴다.
CHECK io_oif->mo_event->mv_event_id EQ if_fpm_constants=>gc_event–start.
DATA : lt_mainview TYPE io_oif->ty_t_mainview,
ls_mainview TYPE io_oif->ty_s_mainview.
io_oif->get_mainviews( EXPORTING iv_variant_id = ‘VARIANT_QTE_PURCH’
IMPORTING et_mainview = lt_mainview ).
LOOP AT lt_mainview INTO ls_mainview.
CASE ls_mainview–id.
WHEN ‘QTE_PURCH_Appr’ OR ‘QTE_PURCH_Track’.
TRY .
io_oif->set_hidden_mainview(
EXPORTING
iv_variant_id = ls_mainview–variant
iv_mainview_id = ls_mainview–id
iv_hidden = ‘X’
).
CATCH cx_fpm_floorplan. ” Floorplan exceptions
ENDTRY.
WHEN OTHERS.
ENDCASE.
CLEAR ls_mainview.
ENDLOOP.
위와 같이 FPM Event 별로 실행되며, 상황에 따라 UIBB 를 Hidden 시킬 수 있다.
기타 사항은 IF_FPM_OIF 에서 확인하자.
예를 들어 User Role 별 Display 구성을 다르게 하고자 할 때 사용하면 된다.
물론, Role 별로 Configuration을 다르게 만들어 배포하는 것이 바람직하다.
또 다른 방법은 Variant 를 여러개 만드는 방법도 있다.
UIBB 라는걸 지정해서 화면 구성이 가능하다.
UIBB 종류
– 서식 컴포넌트
– 리스트 컴포넌트
– 탭 컴포넌트
– 검색 컴포넌트
– 트리 컴포넌트
UIBB 속성
– Component : WD Component 중 IF_FPM_UI_BUILDING_BLOCK 이 구현된 컴포넌트
– Configuration
– View
– Index
– 확대필요
Toolbar 요소 (Button Action Event)
FPM Event ID 가 중요하다.
FPM Event 를 발생하면 각각의 UIBB 에 해당되는 COMPONENTCONTROLLER 에서 구동된다.
FPM 을 사용하면 아래와 같이 5개의 Method 가 생긴다.
FPM Event 가 발생되면 PROCESS_EVENT 가 실행된다.
PROCESS_EVENT Method
CASE io_event->mv_event_id.
WHEN if_fpm_constants=>gc_event-start.
WHEN if_fpm_constants=>gc_event-leave_initial_screen.
WHEN 'CHECK_DATA'.
IF sy-subrc NE 0.
ev_result = 'FAILED'.
ENDIF.
WHEN OTHERS.
ENDCASE.
Event ID 별로 구현한다.
첫 로딩시 FPM_START 가 구현되고
초기화면에서 MAIN 화면으로 넘어가면 FPM_LEAVE_INITIAL_SCREEN 이 실행된다.
점검 이라는 버튼을 생성하고 FPM Event ID 를 CHECK_DATA 라고 지정한다.
Check Logic 을 추가하고 결과값에 따라서 더 이상 진행을 하지 않으려면
ev_result 변수에 FAILED 를 넘겨주면 된다.
PROCESS_BEFORE_OUTPUT Method
이 Method 에서는 이름 그대로 화면에 보이기 전에 필요한 사항을 적용하면 된다.
UI Element Properties etc…….
==============================================================================================================
WD4A 을 개발하다 보면 A View 에서 B View 와 상호 유기적으로 작동이 필요할 때가 있다.
이럴땐 Component 에 Event 를 추가하여 사용을 하곤 한다.
필요에 따라서 REUSE Component 도 사용하게 된다.
프로그램에 Reuse , View 도 추가에 제한이 있다. 몇개인지는 기억이 안남.
프로그램의 기능이 많아지면 Event 를 받아서 작업하는데 무리가 오게 된다.
FPM 은 RAISE_EVENTS 를 발생시켜 일관된 프로세스 작업이 가능하다.
또한 쉽게 Component 를 추가하고, 제어할 수 있다.
FPM 문서를 먼저 보면 뭔 소린지 모르겠지만, Tutorial 을 따라해 보고 문서를 읽으면 엄첨 쉽고 편리한 것을 느낄 수 있다.
OIF 보다는 OVP 가 좀 더 많은 기능을 구현할 수 있게 되어있다.
OVP 의 기능은 IF_FPM_OVP 에서 확인해 보자.
여긴 ToolBar Button 제어도 가능한 Method 들을 제공해 준다.
단점은 좀 더 무거워요.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.