0% found this document useful (0 votes)
4 views2 pages

Derive Concept UIdududi

Derive c9ncept

Uploaded by

taposingh168
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views2 pages

Derive Concept UIdududi

Derive c9ncept

Uploaded by

taposingh168
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

DATA: lr_model TYPE REF TO if_usmd_model_ext.

DATA: lt_sel TYPE usmd_ts_sel.


DATA: ls_sel TYPE usmd_s_sel.
DATA: lt_objlist TYPE usmd_t_crequest_entity.
DATA: ls_objlist TYPE usmd_s_crequest_entity.
DATA: lv_matnr TYPE matnr.
DATA: lr_data TYPE REF TO data,
ls_material TYPE /mdgmm/_s_mm_pp_material.

FIELD-SYMBOLS:<fs_usage> TYPE fpmgb_s_fieldusage.

FIELD-SYMBOLS: <lt_data> TYPE SORTED TABLE.


FIELD-SYMBOLS: <ls_data> TYPE any.
CONSTANTS: lc_incl TYPE ddsign VALUE 'I'.
CONSTANTS: lc_equal TYPE ddoption VALUE 'EQ'.
FIELD-SYMBOLS:<ls_type> TYPE any,
<ls_text> TYPE any,
<ls_witem> TYPE any,
<lv_crequest> TYPE any.

ASSIGN COMPONENT 'CR_ID' OF STRUCTURE cs_data TO <lv_crequest>.


CHECK <lv_crequest> IS ASSIGNED AND <lv_crequest> IS NOT INITIAL.
* Get read-only access to USMD model data
CALL METHOD cl_usmd_model_ext=>get_instance
EXPORTING
i_usmd_model = if_mdg_bs_mat_gen_c=>gc_model_mm
IMPORTING
eo_instance = lr_model.

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

CHECK <ls_type> IS ASSIGNED AND <ls_type> IS NOT INITIAL.


ASSIGN COMPONENT 'TEXT' OF STRUCTURE cs_data TO <ls_text>.
IF <ls_text> IS ASSIGNED.

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.

LOOP AT ct_field_usage ASSIGNING <fs_usage> .


IF <fs_usage>-name IS ASSIGNED AND <fs_usage>-name = 'TEXT'.
<fs_usage>-read_only = 'X'.
ENDIF.
ENDLOOP.
* ENDIF.

You might also like