In fact, every FM has a implicit Exception Parameter called ERROR_MESSAGE, so we can use it to capture the error message raised from FM inside and to avoid the error message pop-up directly.
Sample Code:
CALL FUNCTION 'UDM_BP_COLL_DB_EXECUTE'
EXPORTING
* IT_PROFILE_UPD =
it_segment_upd = lt_bp_segment_upd
* IT_TEMPASSIGNM_UPD =
EXCEPTIONS
error_message = 1.
IF sy-subrc <> 0.
WRITE /: 'MSG ID:', sy-msgid,
'MSG NO:', sy-msgno,
'MSG TYPE', sy-msgty,
'MSGV1:', sy-msgv1,
'MSGV2:', sy-msgv2,
'MSGV3:', sy-msgv3,
'MSGV4:', sy-msgv4.
ENDIF.