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

    WHEN if_fpm_constants=>gc_eventleave_initial_screen.

    WHEN ‘CHECK_DATA’.
      IF sysubrc 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 들을 제공해 준다.


단점은 좀 더 무거워요.