[요약] Assistance Class를 지정하게 되면 Message Symbol 기능을 이용하여 Message를 정의할 수 있다.

         Assiance Class는 CL_WD_COMPONENT_ASSISTANCE 클래스를 상속받아 사용된다.

          Input 필드에 Validation Event를 등록하여 값이 유효한지 체크하는 로직을 배워본다.

 

 

1. Web Dynpro Component를 더블클릭하여 Assitance Class를 지정 한다.

 

2. Assistance Class를 이용하여 Text Message를 정의한후,

   Layout에 텍스트필드를 하나 정의한 후, Enter이벤트를 등록한다.

   해당 Method에 아래와 같은 코딩을 통해 입력값에 대한 Message Validation 처리가 가능하다.

 

 

  method ONACTIONVALIDATION .
  DATA lo_nd_selection TYPE REF TO if_wd_context_node.

  DATA lo_el_selection TYPE REF TO if_wd_context_element.
  DATA ls_selection TYPE wd_this->Element_selection.
  DATA lv_matnr TYPE wd_this->Element_selection-matnr.

*   navigate from <CONTEXT> to <SELECTION> via lead selection
  lo_nd_selection wd_context->get_child_nodename wd_this->wdctx_selection ).

*   get element via lead selection
  lo_el_selection lo_nd_selection->get_element).
*   @TODO handle not set lead selection
  IF lo_el_selection IS INITIAL.
  ENDIF.

*   get single attribute
  lo_el_selection->get_attribute(
    EXPORTING
      name =  `MATNR`
    IMPORTING
      value lv_matnr ).

* get message manager
  data lo_api_controller     type ref to if_wd_controller.
  data lo_message_manager    type ref to if_wd_message_manager.

  lo_api_controller ?= wd_This->Wd_Get_Api).

  CALL METHOD lo_api_controller->GET_MESSAGE_MANAGER
    RECEIVING
      MESSAGE_MANAGER lo_message_manager.


* 조회값에 대한 점검
  data lv_msg type string.

  select single mandt
    into sy-mandt
    from mara
    where matnr eq lv_matnr.
  if sy-subrc eq 0.
* Symbol에서 Message를 가져온다.
    lv_msg wd_assist->IF_WD_COMPONENT_ASSISTANCE~GET_TEXTkey 'M01' )"Success

* report message
    CALL METHOD lo_message_manager->REPORT_SUCCESS
      EXPORTING
        MESSAGE_TEXT lv_msg.
  else.
    lv_msg wd_assist->IF_WD_COMPONENT_ASSISTANCE~GET_TEXTkey 'M02' )"Error

* report message
    CALL METHOD lo_message_manager->REPORT_ERROR_MESSAGE
      EXPORTING
        MESSAGE_TEXT lv_msg.
  endif.



endmethod.

 

 

profile

안녕하세요^^