SAP MDG · REPLICATION OUTBOUND

How do I implement the full outbound GTS proxy mapping flow in SAP MDG/ABAP?

Use the validated GTS pattern: normalize customer and address data, fill the generated request structure `ZMT_PARTNER_TRANSFER_GTS_REQ`, call proxy class `ZCO_SI_PARTNER_TRANSFER_GTS_IN`, and catch `CX_AI_SYSTEM_FAULT` to turn technical failures into a readable message.

Use the validated GTS pattern: normalize customer and address data, fill the generated request structure `ZMT_PARTNER_TRANSFER_GTS_REQ`, call proxy class `ZCO_SI_PARTNER_TRANSFER_GTS_IN`, and catch `CX_AI_SYSTEM_FAULT` to turn technical failures into a readable message.

This GTS example shows the full outbound mapping flow from customer data to the generated proxy request structure and the proxy call. The key steps are: normalize the source values, fill the nested partner/key/head/central/address nodes, set the control flags, and then call the generated proxy.

Process flow

  1. Collect customer and partner input in a report or utility method.
  2. Normalize names and address text to the receiver’s expected format.
  3. Build the generated GTS request structure node by node.
  4. Set partner key, header, central, address, and control fields.
  5. Create and call the generated proxy class.
  6. Catch technical faults and return a readable error message.
  7. Write the final status for the test harness or calling program.

No SPRO/IMG configuration path is provided in the retrieved GTS example. The evidence focuses on ABAP payload assembly and proxy invocation.

Referenced tables

ObjectPurpose
— No customizing tables are explicitly named in the retrieved GTS example. The example uses generated DDIC proxy structures rather than business customizing tables.

ILLUSTRATIVE ABAP SAMPLE

Source ABAP example

Exact relevant implementation excerpt from the knowledge document.

1"============================================================================== 2" GTS Full Example 3" Purpose: 4" - Show the full outbound GTS mapping flow from customer data to the 5" generated proxy request structure and the proxy call. 6" Based on the live pattern found in: 7" - ZCL_MDGC_ONLINE_STORE_UTIL=>VALIDATE_GTS 8" - ZCL_MDGC_ONLINE_STORE_UTIL=>UPDATE_GTS 9" - report ZSAM_TEST 10"============================================================================== 11 12REPORT zsam_gts_full_example. 13 14PARAMETERS: 15 p_reqid TYPE char3, 16 p_soldto TYPE kunnr, 17 p_partner TYPE kunnr, 18 p_bukrs TYPE bukrs, 19 p_name1 TYPE name1_gp, 20 p_name2 TYPE name2_gp, 21 p_stras TYPE stras_gp, 22 p_stras2 TYPE stras_gp, 23 p_city TYPE ort01_gp, 24 p_state TYPE regio, 25 p_country TYPE land1, 26 p_postal TYPE pstlz, 27 p_taxid TYPE stcd1, 28 p_fax TYPE telfx, 29 p_tel1 TYPE telf1, 30 p_tel2 TYPE telf2, 31 p_guest TYPE char1 DEFAULT space. 32 33DATA: 34 ls_validate_return TYPE zmdg_os_return, 35 ls_gts_req TYPE zmt_partner_transfer_gts_req, 36 ls_gts_res TYPE zmt_partner_transfer_gts_res, 37 lo_proxy TYPE REF TO zco_si_partner_transfer_gts_in, 38 lv_partner TYPE kunnr, 39 lv_message TYPE string. 40 41START-OF-SELECTION. 42 43 " Normalize the source values before sending them to the receiver. 44 DATA(lv_comp_name) = p_name1. 45 DATA(lv_cust_name) = p_name2. 46 DATA(lv_stras) = p_stras. 47 DATA(lv_stras2) = p_stras2. 48 DATA(lv_city) = p_city. 49 DATA(lv_partner_id) = p_partner. 50 51 TRANSLATE lv_comp_name TO UPPER CASE. 52 TRANSLATE lv_cust_name TO UPPER CASE. 53 TRANSLATE lv_stras TO UPPER CASE. 54 TRANSLATE lv_stras2 TO UPPER CASE. 55 TRANSLATE lv_city TO UPPER CASE. 56 57 " This block mirrors the validation step: prepare a customer-like payload 58 " using the current customer number, name, country, and address data. 59 ls_validate_return = VALUE #( type = 'S' message = 'Validation prepared for outbound GTS transfer' ). 60 61 " Build the outbound GTS request structure using the same data shape as the live utility. 62 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_key-partner_id = lv_partner_id. 63 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_key-partner_typ = '02'. 64 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_key-org_logsystem = sy-sysid. 65 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_head-extern_no = lv_partner_id. 66 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_head-partn_cat = '2'. 67 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_head-partnerrole = 'SLLCPC'. 68 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-central-partnerexternal = lv_partner_id. 69 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-central-searchterm1 = lv_comp_name(10). 70 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-central_org-name1 = lv_comp_name. 71 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-central_org-name2 = lv_cust_name. 72 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-central_org-name4 = lv_stras2. 73 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-standardaddress = abap_true. 74 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-city = lv_city. 75 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-postal_code = p_postal. 76 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-street = lv_stras. 77 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-str_suppl1 = lv_stras2. 78 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-country = p_country. 79 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-region = p_state. 80 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_address-langu = 'EN'. 81 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-name1 = lv_comp_name. 82 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-name2 = lv_cust_name. 83 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-name4 = lv_stras2. 84 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-city = lv_city. 85 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-langu = 'EN'. 86 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-postl_cod1 = p_postal. 87 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-street = lv_stras. 88 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-country = p_country. 89 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_ad1vl-region = p_state. 90 91 " Keep the same control behavior as the live utility. 92 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-iv_applog_positive = abap_true. 93 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-iv_upd_task_adrcon = abap_true. 94 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-iv_upd_task_pntbp = abap_false. 95 96 " Reuse the same business checks before the proxy is called. 97 IF p_reqid = '001'. 98 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_key-partner_typ = '02'. 99 ELSEIF p_reqid = '002'. 100 ls_gts_req-mt_partner_transfer_gts_req-partner_inbound_gts-partner-partner_key-partner_typ = '02'. 101 ENDIF. 102 103 TRY. 104 " Create the generated proxy and send the request. 105 CREATE OBJECT lo_proxy. 106 IF lo_proxy IS BOUND. 107 lo_proxy->si_partner_transfer_gts_inboun( 108 EXPORTING 109 input = ls_gts_re

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

Related questions and keywords

Alternative questions

  • How do I build and call the outbound GTS proxy request in ABAP?
  • What is the sample pattern for outbound GTS validation and update in SAP?
  • How do I populate the generated GTS request structure and handle proxy errors?

Possible questions

  • How do I implement the full outbound GTS proxy mapping flow in SAP MDG/ABAP?
  • How do I populate the generated GTS request structure and handle proxy errors?
  • What is the sample pattern for outbound GTS validation and update in SAP?
  • How do I build and call the outbound GTS proxy request in ABAP?
  • Which proxy class and request structure are used in the GTS outbound example?

Keywords

SAP MDGABAPGTSoutbound proxyproxy callvalidation stepupdate stepgenerated request structurecx_ai_system_faultZSAM_TEST