Derive Concept UIdududi
Derive Concept UIdududi
* * Read object list of CR and get the one and only material:
* Get the key of the (type 1) entity MATERIAL
* from the object list of this CR
ls_sel-sign = lc_incl.
ls_sel-option = lc_equal.
ls_sel-fieldname = usmd0_cs_fld-crequest.
ls_sel-low = <lv_crequest>.
INSERT ls_sel INTO TABLE lt_sel.
CALL METHOD lr_model->read_char_value
EXPORTING
i_fieldname = usmd0_cs_fld-crequest
it_sel = lt_sel
if_use_edtn_slice = abap_false
IMPORTING
et_data = lt_objlist.
READ TABLE lt_objlist INTO ls_objlist INDEX 1.
ASSERT sy-subrc = 0. " CR not found or contains no material
* IF sy-subrc EQ 0.
lv_matnr = ls_objlist-usmd_value.
* Prepare result table for MATERIAL read
CALL METHOD lr_model->create_data_reference
EXPORTING
i_fieldname = if_mdg_bs_mat_gen_c=>gc_fieldname_material
i_struct = lr_model->gc_struct_key_attr
if_table = abap_true
i_tabtype = lr_model->gc_tabtype_sorted
IMPORTING
er_data = lr_data.
ASSIGN lr_data->* TO <lt_data>.
* Read MATERIAL via material number and Change Request ID
CLEAR lt_sel.
ls_sel-fieldname = if_mdg_bs_mat_gen_c=>gc_fieldname_material.
ls_sel-sign = lc_incl.
ls_sel-option = lc_equal.
ls_sel-low = lv_matnr.
INSERT ls_sel INTO TABLE lt_sel.
ls_sel-fieldname = usmd0_cs_fld-crequest.
ls_sel-low = <lv_crequest>.
INSERT ls_sel INTO TABLE lt_sel.
CALL METHOD lr_model->read_char_value
EXPORTING
i_fieldname = if_mdg_bs_mat_gen_c=>gc_fieldname_material
it_sel = lt_sel
i_readmode = if_usmd_model_ext=>gc_readmode_all_inact
if_use_edtn_slice = abap_false
IMPORTING
et_data = <lt_data>.
* Return the one and only result
READ TABLE <lt_data> ASSIGNING <ls_data> INDEX 1.
IF sy-subrc = 0. " CR not found or contains no material
MOVE-CORRESPONDING <ls_data> TO ls_material.
ENDIF.
ASSIGN COMPONENT 'TYPE' OF STRUCTURE cs_data TO <ls_type>.
IF <ls_type> eq 'YMAT01'.
MOVE 'Create Material' TO <ls_text>.
endif.
ENDIF.
IF ls_material-MTART IS NOT INITIAL.
* CONCATENATE <ls_text> ls_material-matkl into <ls_text> SEPARATED BY '-'.
CONCATENATE <ls_text> ls_material-MTART INTO <ls_text> SEPARATED BY '-'.
ENDIF.
CLEAR ls_material.
* ENDIF.
* ENDIF.
ASSIGN COMPONENT 'WORKITEM__TEXT' OF STRUCTURE cs_data TO <ls_witem>.
IF <ls_witem> IS ASSIGNED.
IF <ls_type> EQ 'YMAT01'.
MOVE 'New Create Request' TO <ls_witem>.
ENDIF.
ENDIF.