SAP MDG · REPLICATION OUTBOUND

How do custom MDG outbound DRF classes handle customer and BP replication with mapping, filtering, and IDoc/proxy send?

Custom MDG outbound DRF classes typically follow the same lifecycle: constructor/initialization, `READ_COMPLETE_DATA` for scope reduction and suppression checks, `SEND_MESSAGE` for dispatch, and helper methods for key mapping and node filtering. In the customer and BP examples, the main focus is mapping hub/client identifiers, filtering replication scope by sales area or company code, and sending either IDocs or proxy payloads.

Custom MDG outbound DRF classes typically follow the same lifecycle: constructor/initialization, `READ_COMPLETE_DATA` for scope reduction and suppression checks, `SEND_MESSAGE` for dispatch, and helper methods for key mapping and node filtering. In the customer and BP examples, the main focus is mapping hub/client identifiers, filtering replication scope by sales area or company code, and sending either IDocs or proxy payloads.

Custom MDG outbound DRF implementations in this pattern are built around a small set of entry points and helper methods. The constructor or `CLASS_CONSTRUCTOR` stores the local business system, `IF_DRF_OUTBOUND~INITIALIZE` prepares the runtime object, `IF_DRF_OUTBOUND~READ_COMPLETE_DATA` removes data that must not be replicated, and `IF_DRF_OUTBOUND~SEND_MESSAGE` performs the actual send. In the customer and BP examples, the class also contains helper methods for key mapping, identifier translation, node filtering, and IDoc/proxy dispatch.

Process flow

  1. Identify the outbound scenario: customer IDoc-based replication or BP proxy-based replication.
  2. Read the constructor or class constructor to confirm the local business system is cached.
  3. Implement `IF_DRF_OUTBOUND~INITIALIZE` to create the runtime instance and return outbound metadata.
  4. Use `IF_DRF_OUTBOUND~READ_COMPLETE_DATA` to prune non-replicable objects such as duplicates, employees, or invalid assignments.
  5. Apply filter-object logic such as sales area, company code, role, identification, address usage, or tax category filtering.
  6. Read and write key mappings through the dedicated helper methods before dispatch.
  7. Send the payload using the appropriate `SEND_*` IDoc helper or BP proxy service.
  8. Handle exceptions, pending-message checks, and replication-status updates consistently.
MDG_BS_ECC_CUSCP

Customizing table used by the customer outbound implementation for business-system/customer control

Stores customer-related customizing referenced by the outbound class.

Referenced tables

ObjectPurpose
MDG_BS_ECC_CUSCPCustomizing table referenced by the customer outbound implementation.
DRF_T_OBJ_REP_STA_FULLDRF replication status structure used in the customer outbound flow.
BDIKNA1KEYIDoc-related business structure referenced in the customer outbound implementation.
MDG_S_BUS_SYS_TECHBusiness-system technical structure referenced by the customer outbound implementation.

ILLUSTRATIVE ABAP SAMPLE

Source ABAP example: ZCL_MDG_BP_CUSTOMER_PROXY_DRF_FULL.abap

Exact relevant implementation excerpt from the knowledge document set.

1class ZCL_MDG_BP_CUSTOMER_PROXY_DRF definition 2 public 3 inheriting from CL_MDG_BS_BP_SUPER_DRF 4 create public . 5 6public section. 7 8*"* public components of class ZCL_MDG_BP_CUSTOMER_PROXY_DRF 9*"* do not include other source files here!!! 10 interfaces IF_DRF_OUTBOUND . 11 12 class-data GV_CURRENT_STATE type ABAP_BOOL . 13 14 class-methods CLASS_CONSTRUCTOR . 15protected section. 16 17 constants GC_ETERNAL_DATE type BU_DATTO value '99991231' ##NO_TEXT. 18 METHODS get_bp_bupa_outbound RETURNING VALUE(ro_bp_bupa_outbound) TYPE REF TO if_bs_bp_soa_service_impl_out. 19 METHODS get_bp_relship_outbound RETURNING VALUE(ro_bp_relship_outbound) TYPE REF TO if_bs_bp_soa_service_impl_out. 20private section. 21 22 data: 23 GT_MSG_LINK type sorted table of MDG_BS_BP_ADMIN_MESSAGE_DATA with unique key objkey . 24*"* private components of class ZCL_MDG_BP_CUSTOMER_PROXY_DRF 25*"* do not include other source files here!!! 26 data MV_RECEIVER_BSKEY type MDG_EXTR_BSKEY . 27 data MT_KEY_MAPPING type MDG_BS_BP_TT_MAPPING_KEYS . 28 29 methods RAISE_DRF_EXCEPTION 30 importing 31 !IR_EXCEPTION type ref to CX_ROOT 32 raising 33 CX_DRF_EXCEPTION . 34 methods ROLE_NODE_FILTER 35 importing 36 !IT_EXTERNAL_CRITERIA type RSDS_TRANGE 37 !IV_IGNORE_FILTER type ABAP_BOOL 38 changing 39 !CT_BS_BP_EXTERN type MDG_BS_BP_T_EXTERN 40 raising 41 CX_DRF_EXCEPTION . 42 methods SAME_REL_PARTNER 43 importing 44 !IS_RELATION type MDG_BS_BP_REL_S_EXTERN 45 returning 46 value(RV_SAME_TARGET_BP) type ABAP_BOOL . 47 methods GET_BP_KEY_MAPPING 48 importing 49 !IV_PARTNER type BU_PARTNER 50 exporting 51 !ES_KEY_MAPPING type MDG_BS_BP_S_MAPPING_KEYS . 52 methods IDENTIFICATION_NODE_FILTER 53 importing 54 !IT_EXTERNAL_CRITERIA type RSDS_TRANGE 55 !IV_IGNORE_FILTER type ABAP_BOOL 56 changing 57 !CT_BS_BP_EXTERN type MDG_BS_BP_T_EXTERN 58 raising 59 CX_DRF_EXCEPTION . 60 methods ADDRESS_USAGE_NODE_FILTER 61 importing 62 !IT_EXTERNAL_CRITERIA type RSDS_TRANGE 63 !IV_IGNORE_FILTER type ABAP_BOOL 64 changing 65 !CT_BS_BP_EXTERN type MDG_BS_BP_T_EXTERN 66 raising 67 CX_DRF_EXCEPTION . 68 methods TAXCAT_NODE_FILTER 69 importing 70 !IT_EXTERNAL_CRITERIA type RSDS_TRANGE 71 !IV_IGNORE_FILTER type ABAP_BOOL 72 changing 73 !CT_BS_BP_EXTERN type MDG_BS_BP_T_EXTERN 74 raising 75 CX_DRF_EXCEPTION . 76 77ENDCLASS. 78 79 80 81CLASS ZCL_MDG_BP_CUSTOMER_PROXY_DRF IMPLEMENTATION. 82 83 84METHOD ADDRESS_USAGE_NODE_FILTER. 85 86 DATA: lt_address_usage TYPE SORTED TABLE OF MDG_BS_BP_S_TB009 WITH UNIQUE KEY ADR_KIND. 87 DATA: lt_bupa_address TYPE bus_ei_bupa_address_t. 88 DATA: lt_bupa_address_usage TYPE BUS_EI_BUPA_ADDRESSUSAGE_t. 89 DATA: mo_bp_address_usage_filter TYPE REF TO cl_drf_filter_object. 90 DATA: lx_drf_exception TYPE REF TO cx_drf_exception. 91 92 FIELD-SYMBOLS: <ls_bupa_address> TYPE bus_ei_bupa_address. 93 FIELD-SYMBOLS: <ls_bupa_address_usage> TYPE bus_ei_bupa_addressusage. 94 FIELD-SYMBOLS: <ls_bs_bp_extern> TYPE mdg_bs_bp_s_extern. 95 96 97* Segement filter ADDRESS USAGE 98 TRY. 99 mo_bp_address_usage_filter = cl_drf_service_tools=>filter_object_factory( 100 iv_appl = ms_runtime_param-appl 101 iv_business_system = ms_runtime_param-business_system 102 iv_filter_object = '98698' 103 iv_outb_impl = ms_runtime_param-outb_impl 104 io_bal = ms_runtime_param-bal 105 iv_dlmod = ms_runtime_param-dlmod 106 iv_runmod = ms_runtime_param-runmod ). 107 108 CATCH cx_drf_exception INTO lx_drf_exception. 109 RAISE EXCEPTION TYPE cx_drf_exception 110 EXPORTING 111 previous = lx_drf_exception. 112 ENDTRY. 113 114 115* Initialise DRF ADDRESS USAGE filter 116 CALL METHOD mo_bp_address_usage_filter->init_objects 117 EXPORTING 118 iv_use_object_ref = 'X' "=> lt_address_usage is treaten as an reference 119 CHANGING "-> apply_filter will directly update into lt_address_usage 120 ct_objects = lt_address_usage.

The remaining configuration, implementation details, and testing guidance continue from this answer more…

Related questions and keywords

Alternative questions

  • How does a custom MDG outbound class decide what to send in DRF?
  • How are BP/customer IDs mapped in an outbound DRF class?
  • What are the typical methods in a custom MDG customer outbound implementation?

Possible questions

  • How does the class determine the outbound customer ID?
  • Which helper builds the IDoc payload for a specific object type?
  • Which methods depend on DRF filter objects or MDG matching services?
  • Where is key mapping read or written?
  • Which outbound methods are relevant for customer master replication?

Keywords

SAP MDGDRFoutbound replicationcustomer masterbusiness partnerkey mappingIDocproxy outboundfilter objectgovernance scope