Hi Frank,
Thanks for sharing your final solution, a wrapper Function Module to call the standard SAP Function Module. I like this approach since it's lean and the strong advantage (from a maintenance perspective) is that you do not have to copy any standard SAP Function Module (that is the part which I forgot to mention...).
As a generic approach I think that there is one more thing which you might have to add, depending on the situation. Often the DataSource name (import parameter I_ISOURCE) is checked prior to execution (please see example below). This can be included in the wrapper Function Module of course.
Example DataSource 0FI_GL_10 - check on DataSource name:
* Check InfoSource validity
CASE i_isource.
WHEN cd_datasource_leading_ledger.
WHEN cd_datasource_lead_led_queue.
WHEN cd_datasource_sem_bcs.
WHEN cd_datasource_sem_bcs_addd.
when cd_datasource_lead_led_delta_i.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'009' "message number
i_isource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
Best regards,
Sander