When the given header extension is read via CRM_ORDER_READ, take OPPORT_H for example:
DATA: lt_header_guid TYPE crmt_object_guid_tab,
lv_guid TYPE crmt_object_guid,
lv_object_id TYPE CRMT_OBJECT_ID_DB value '21',
lt_oppt TYPE CRMT_OPPORT_H_WRKT,
lt_partner TYPE crmt_partner_external_wrkt.
START-OF-SELECTION.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_object_id
IMPORTING
output = lv_object_id.
SELECT SINGLE guid INTO lv_guid FROM crmd_orderadm_h
WHERE object_id = lv_object_id AND process_type = 'CXOP'.
CHECK sy-subrc = 0.
APPEND lv_guid TO lt_header_guid.
CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
it_header_guid = lt_header_guid
IMPORTING
* et_partner = lt_partner
et_opport_h = lt_oppt.
The calling hierarchy could be found from below:
Every header extension has one corresponding read function module acting as entry point for read which will be called by CRM_ORDER_READ_OW with naming convention CRM_