SAP SRM Add Custom Field Extension
Custom Field for SRM SC WebDynpro Application
http://scn.sap.com/docs/DOC-25692
Table extensions in SRM documents
http://scn.sap.com/docs/DOC-28602
위 문서대로 생성 후 테스트를 해 보면 아래와 같은 경우가 발생된다.
1. Table Add Button 후 Enter(PDO Action) 라인 오류 (Add 한 만큼의 라인이 더 생긴다.)
WD_COMPONENT /SAPSRM/WDC_DODC_CT
VIEW V_DODC_CT
Method ONACTIONON_ADD Post-Exit
—————————————————————————————————
wd_comp_controller->mo_mapper->fire_event_refresh( ).
—————————————————————————————————
2. VIEW UI Properties 변경
WD_COMPONENT /SAPSRM/WDC_DODC_CT
VIEW V_DODC_CT
Method WDDOMODIFYVIEW Post-Exit
—————————————————————————————————
IF first_time EQ abap_true.
  wd_this->mo_view    = view.
  wd_this->mv_bo_type = wd_comp_controller->mo_task_container->get_bo_type( ).
ENDIF.
CASE wd_this->mv_bo_type.
  WHEN ‘BUS2202’. “Quotation
    wd_this->modifyview_quot( first_time = first_time ).
  WHEN OTHERS.
ENDCASE.
—————————————————————————————————
MODIFYVIEW_QUOT
DATA : lr_table         TYPE REF TO cl_wd_table,
         lr_table_column  TYPE REF TO cl_wd_table_column,
         lr_header        TYPE REF TO cl_wd_caption,
         lr_linktoaction  TYPE REF TO cl_wd_link_to_action,
         lr_text_view     TYPE REF TO cl_wd_text_view,
         lr_dropdown_cate TYPE REF TO cl_wd_dropdown_by_key,
         lr_container     TYPE REF TO cl_wd_transparent_container,
         lr_gutter        TYPE REF TO cl_wd_horizontal_gutter.
  DATA : lt_abstr_columns TYPE cl_wd_abstr_table_column=>tt_abstr_table_column,
         lr_abstr_column  TYPE REF TO cl_wd_abstr_table_column,
         lr_column        TYPE REF TO cl_wd_table_column,
         lr_cell          TYPE REF TO cl_wd_abstr_table_cell_var,
         lr_summary_cell  TYPE REF TO cl_wd_table_summary_cell,
         lv_variant       TYPE string,
         lv_design        TYPE wdui_table_sum_cell_design.
  IF first_time EQ abap_true.
*——————————————————————–*
*   Change Title.
    lr_linktoaction ?= wd_this->mo_view->get_element( ‘CON_TICUS_TITLE’ ).
    IF lr_linktoaction IS BOUND.
      lr_linktoaction->set_text( ‘상세 정보‘ ).
    ENDIF.
*——————————————————————–*
*   Invisible Container.
    lr_container    ?= wd_this->mo_view->get_element( ‘CON_TIGPM_TRAY_CONT’ ).
    IF lr_container IS BOUND.
      lr_container->set_visible( ’01’ ).
    ENDIF.
*   Invisible Gutter.
    lr_gutter       ?= wd_this->mo_view->get_element( ‘GUTTER_12’ ).
    IF lr_gutter IS BOUND.
      lr_gutter->set_visible( ’01’ ).
    ENDIF.
*   Invisible Container.
    lr_container    ?= wd_this->mo_view->get_element( ‘CON_TIGPS_TRAY_CONT’ ).
    IF lr_container IS BOUND.
      lr_container->set_visible( ’01’ ).
    ENDIF.
*   Invisible Gutter.
    lr_gutter       ?= wd_this->mo_view->get_element( ‘GUTTER_123’ ).
    IF lr_gutter IS BOUND.
      lr_gutter->set_visible( ’01’ ).
    ENDIF.
*——————————————————————–*
*   Add Table Column – DropDownListBox.
    lr_table ?= wd_this->mo_view->get_element( id = ‘TICUS’ ).
    CHECK lr_table IS BOUND.
lr_table_column = cl_wd_table_column=>new_table_column( ).
    lr_header = cl_wd_caption=>new_caption( text = ‘비용구분‘ ).
    lr_table_column->set_header( lr_header ).
    lr_table_column->set_h_align( ’01’ ).
    lr_table_column->set_width( ‘200’ ).
    lr_dropdown_cate = cl_wd_dropdown_by_key=>new_dropdown_by_key(
      bind_read_only     = ‘TICUS.ZCOST_PRICE:READ_ONLY’
      bind_selected_key  = ‘TICUS.ZCOST_CATE’
      id                 = ‘ZCOST_CATE_DROP’
      on_select          = ‘ON_ENTER’
    ).
lr_table_column->set_table_cell_editor( lr_dropdown_cate ).
    lr_table->add_column( index      = 1
                          the_column = lr_table_column ).
lr_table_column ?= wd_this->mo_view->get_element( id = ‘TICUS_CZCOST_CATE’ ).
    IF lr_table_column IS BOUND.
      lr_table_column->set_visible( ’01’ ).
    ENDIF.
    lr_table
lr_table->set_visible_row_count( –1 ).
ENDIF.
—————————————————————————————————
결과 화면 

 
  