Hi all,
This is the scenario:
In an empty row, if I uncheck the field "Supplier is active", write the Supplier ID and push Enter then the standard code somewhere set the field active again to 'X'. This is the standard behavior.
I have a requirement in which when a new item is added the field "Supplier is active" must be disabled and unchecked. ( We have a custom report to activate or deactivate the items, this report can be executed only by some users depending on the user roles )
I've changed the visualization of the field by customizing, but I can't uncheck the field.
I've debugged the standard code but I couldn't find the place where the field is being changed.
The badi BBP_DOC_CHANGE_BADI is not used for object BUS2206.
I'm trying to modify the field adding an enhancement spot at the beginning of the method /SAPSRM/IF_CLL_MAPPER~UPDATE of class /SAPSRM/CL_CH_WD_DOTM_ASL_SOS. But all the attempts I've tried don't work.
Do you know how to do it? Or a workaround to do that?
Thanks in advance.
P.S. This is part of the code I've tried in method
DATA: ls_zz_item TYPE /sapsrm/s_cll_asl_sos_list, lt_zz_item TYPE /sapsrm/if_ch_wd_set_facade=>gt_guid_element, lt_items TYPE bbpt_guid, lo_zz_item TYPE REF TO /sapsrm/if_ch_wd_set_element.. DATA: lt_messages TYPE bbpt_pd_messages, lv_activity TYPE j_vorgang. FIELD-SYMBOLS <ls_zz_item> TYPE /sapsrm/if_ch_wd_set_facade=>gs_guid_element. * Select current lines SELECT guid INTO TABLE lt_items FROM crmd_orderadm_i WHERE header EQ MV_BO_GUID ORDER BY guid. lt_zz_item = mon_cll_set_facade->get_data_elements( ). LOOP AT lt_zz_item ASSIGNING <ls_zz_item>. lo_zz_item = <ls_zz_item>-set_element. lo_zz_item->get_static_attributes( IMPORTING rv_attributes = ls_zz_item ). CHECK ls_zz_item-SH_PARTNER_ID IS NOT INITIAL. * Check if is a new line or already exists: READ TABLE lt_items TRANSPORTING NO FIELDS WITH KEY guid = ls_zz_item-guid BINARY SEARCH. IF sy-subrc NE 0. * 1st Attempt * ls_zz_item-itm_released = space. * CALL METHOD lo_zz_item->set_static_attributes * EXPORTING * iv_static_attributes = ls_zz_item. * CALL METHOD lo_zz_item->set_changed_by_client * EXPORTING * flag = ABAP_TRUE. * 2nd Attempt "DUMP !!! * TRY. * mo_pdo->delete_item( EXPORTING item_guid = ls_zz_item-guid * CHANGING co_message_handler = mo_pdo_message_consumer ). * CATCH /sapsrm/cx_pdo_abort. * * ENDTRY. * 3rd Attempt lv_activity = /sapsrm/if_pdo_activities_c=>gc_pdo_item_deactivate. * Update the status of the item as inactive CALL FUNCTION 'BBP_PROCDOC_STATUS_CHANGE' EXPORTING iv_item_guid = ls_zz_item-guid i_activity = lv_activity i_object_type = /sapsrm/if_pdo_obj_types_c=>gc_pdo_asl i_save_db = abap_false i_test_run = abap_false TABLES e_messages = lt_messages[]. * 4th Attempt- 1st part * ls_del_item-guid = ls_zz_item-guid. * APPEND ls_del_item TO lt_del_items. ENDIF. ENDLOOP. * 4. Attempt 2nd part "DUMP !!! * IF lt_del_items[] IS NOT INITIAL. * mo_parent_bo_mapper->delete_item( it_item_guid = lt_del_items ). * ENDIF.