METHOD if_ex_usmd_rule_service~check_entity.
DATA: lt_data TYPE usmd_ts_data_entity,
lt_bank_data TYPE REF TO data,
lt_msg TYPE usmd_t_message,
ls_msg TYPE usmd_s_message,
lv_fieldname TYPE bu_koinh,
lv_acc_holder TYPE char20.
FIELD-SYMBOLS:
<lt_bank> TYPE SORTED TABLE,
<ls_bank> TYPE any,
<lv_acc_holder> TYPE any.
io_model->get_changed_fields(
IMPORTING
et_entity_fieldname = DATA(lt_fieldname)
)
.
LOOP AT lt_fieldname INTO DATA(ls_fieldname).
lv_fieldname = ls_fieldname-fieldname.
IF lv_fieldname = ‘KOINH’.
lv_acc_holder = lv_fieldname.
ENDIF.
ENDLOOP.
IF lv_acc_holder = ‘KOINH’.
io_model->read_entity_data_all(
EXPORTING
i_fieldname = ‘BP_HEADER’ ” Financial MDM: Field Name
if_active = abap_false ” Financial MDM: General Indicator
i_crequest = id_crequest ” Change Request
IMPORTING
et_message = lt_msg ” Messages
et_data_entity = lt_data ” Data for Entity Types
).
lt_bank_data = VALUE #( lt_data[ usmd_entity = ‘BP_HEADER’ usmd_entity_cont = ‘BP_BKDTL’ struct = ‘KATTR’ ]-r_t_data OPTIONAL ).
IF lt_bank_data IS NOT INITIAL.
ASSIGN lt_bank_data->* TO <lt_bank>.
IF <lt_bank> IS ASSIGNED.
LOOP AT <lt_bank> ASSIGNING <ls_bank>.
ASSIGN COMPONENT ‘KOINH’ OF STRUCTURE <ls_bank> TO <lv_acc_holder>.
IF <lv_acc_holder> IS ASSIGNED AND
<lv_acc_holder> IS NOT INITIAL AND
<lv_acc_holder> CA ‘~`!@#$%^&*()-_+={}[]|:;”<,>.?/’.
et_message = VALUE #( BASE et_message ( fieldname = ‘KOINH’ msgid = ‘ZMDGS_MESSAGE_CLS’ msgno = ‘002’ msgty = ‘E’ ) ).
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD if_ex_usmd_rule_service~check_entity.
DATA: lt_data TYPE usmd_ts_data_entity,
lt_bank_data TYPE REF TO data,
lt_msg TYPE usmd_t_message,
ls_msg TYPE usmd_s_message,
lv_fieldname TYPE bu_koinh,
lv_acc_holder TYPE char20.
FIELD-SYMBOLS:
<lt_bank> TYPE SORTED TABLE,
<ls_bank> TYPE any,
<lv_acc_holder> TYPE any.
io_model->get_changed_fields(
IMPORTING
et_entity_fieldname = DATA(lt_fieldname)
)
.
LOOP AT lt_fieldname INTO DATA(ls_fieldname).
lv_fieldname = ls_fieldname-fieldname.
IF lv_fieldname = ‘KOINH’.
lv_acc_holder = lv_fieldname.
ENDIF.
ENDLOOP.
IF lv_acc_holder = ‘KOINH’.
io_model->read_entity_data_all(
EXPORTING
i_fieldname = ‘BP_HEADER’ ” Financial MDM: Field Name
if_active = abap_false ” Financial MDM: General Indicator
i_crequest = id_crequest ” Change Request
IMPORTING
et_message = lt_msg ” Messages
et_data_entity = lt_data ” Data for Entity Types
).
lt_bank_data = VALUE #( lt_data[ usmd_entity = ‘BP_HEADER’ usmd_entity_cont = ‘BP_BKDTL’ struct = ‘KATTR’ ]-r_t_data OPTIONAL ).
IF lt_bank_data IS NOT INITIAL.
ASSIGN lt_bank_data->* TO <lt_bank>.
IF <lt_bank> IS ASSIGNED.
LOOP AT <lt_bank> ASSIGNING <ls_bank>.
ASSIGN COMPONENT ‘KOINH’ OF STRUCTURE <ls_bank> TO <lv_acc_holder>.
IF <lv_acc_holder> IS ASSIGNED AND
<lv_acc_holder> IS NOT INITIAL AND
<lv_acc_holder> CA ‘~`!@#$%^&*()-_+={}[]|:;”<,>.?/’.
et_message = VALUE #( BASE et_message ( fieldname = ‘KOINH’ msgid = ‘ZMDGS_MESSAGE_CLS’ msgno = ‘002’ msgty = ‘E’ ) ).
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD. Read More Technology Blog Posts by Members articles
#SAP
#SAPTechnologyblog