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
- Collect customer and partner input in a report or utility method.
- Normalize names and address text to the receiver’s expected format.
- Build the generated GTS request structure node by node.
- Set partner key, header, central, address, and control fields.
- Create and call the generated proxy class.
- Catch technical faults and return a readable error message.
- 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
| Object | Purpose |
|---|---|
— 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_reThe 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?