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_eventstart.

  DATA lt_mainview  TYPE io_oif->ty_t_mainview,
             ls_mainview  TYPE io_oif->ty_s_mainview.

  io_oif->get_mainviewsEXPORTING iv_variant_id ‘VARIANT_QTE_PURCH’
                                    IMPORTING et_mainview   lt_mainview  ).

  LOOP AT lt_mainview INTO ls_mainview.
    CASE ls_mainviewid.
      WHEN ‘QTE_PURCH_Appr’ OR ‘QTE_PURCH_Track’.
        TRY .
            io_oif->set_hidden_mainview(
              EXPORTING
                iv_variant_id  ls_mainviewvariant
                iv_mainview_id ls_mainviewid
                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 들을 제공해 준다.

단점은 좀 더 무거워요.

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Binance注册
Binance注册
1 month ago

Thanks for sharing. I read many of your blog posts, cool, your blog is very good.