Hi Krishan,
I try to get short description of whole process.
1. Define new action in the method GET_DEFINITION of your feeder class. Use ET_ACTION_DEFINITION parameter.
method if_fpm_guibb_form~get_definition.
field-symbols: <s_action_def> like line of et_action_definition[].
eo_field_catalog ?= cl_abap_structdescr=>describe_by_name( 'MARA' ).
append initial line to et_action_definition[] assigning <s_action_def>.
<s_action_def>-id = 'CHECKBOX_ACTION'.
endmethod.
2. Assign new action to checkbox field in component configuration.
3. Catch event in the method GET_DATA and change properties of fields in parameter CT_FIELD_USAGE based on values in CS_DATA. Don't forget to set EV_FIELD_USAGE_CHANGED = 'X'.
method if_fpm_guibb_form~get_data.
field-symbols: <s_mara> type mara,
<s_field_usage> like line of ct_field_usage[].
case io_event->mv_event_id.
when 'CHECKBOX_ACTION'.
assign cs_data to <s_mara>.
read table ct_field_usage[] assigning <s_field_usage> with key name = 'MATNR'.
if <s_mara>-retdelc = abap_true.
<s_field_usage>-read_only = abap_true.
else.
<s_field_usage>-read_only = abap_false.
endif.
read table ct_field_usage[] assigning <s_field_usage> with key name = 'MEINS'.
if <s_mara>-retdelc = abap_true.
<s_field_usage>-visibility = '01'.
else.
<s_field_usage>-visibility = '02'.
endif.
ev_field_usage_changed = abap_true.
when others.
endcase.
endmethod.
Kind regards, Aliaksandr.