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.
—————————————————————————————————
결과 화면