SIMPLE TRANSFORMATION OF STRUCTURE USING STRANS ( ABAP-> XML)
Simple Transformation of Structure Using Tx- XSLT_TOOL / STRANS ( ABAP-> XML) – SAPCODES
结合自己遇到的
结合上面链接的操作方法
1、确认structure

2、使用事务代码STRANS,创建符合xml输出的解析代码

<?sap.transform simple?> <tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined"> <tt:root name="WSRESULT" type="ddic:ZSRWSRESULT"/> <tt:template> <WSResult xmlns="http://tempuri.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- <CONTROLLER> <tt:loop ref=".WSRESULT.CONTROLLER"> <PRXCTRL> <FIELD tt:value-ref="FIELD"/> <VALUE tt:value-ref="VALUE"/> </PRXCTRL> </tt:loop> </CONTROLLER>--> <success tt:value-ref=".WSRESULT.SUCCESS"/> <message tt:value-ref=".WSRESULT.MESSAGE"/> <messageDetail> <!-- <controller> <tt:loop ref=".WSRESULT.MESSAGE_DETAIL.CONTROLLER"> <PRXCTRL> <FIELD tt:value-ref="FIELD"/> <VALUE tt:value-ref="VALUE"/> </PRXCTRL> </tt:loop> </controller>--> <WSResultDetail> <tt:loop ref=".WSRESULT.MESSAGE_DETAIL.WSRESULT_DETAIL"> <!-- <ZDHKWSRESULT_DETAIL> <CONTROLLER> <tt:loop ref="CONTROLLER"> <PRXCTRL> <FIELD tt:value-ref="FIELD"/> <VALUE tt:value-ref="VALUE"/> </PRXCTRL> </tt:loop> </CONTROLLER>--> <!-- <PROCESS_OBJ tt:value-ref="PROCESS_OBJ"/> <RESULT_DTL tt:value-ref="RESULT_DTL"/>--> <processObj tt:value-ref="PROCESS_OBJ"/> <resultDtl tt:value-ref="RESULT_DTL"/> <!-- </ZDHKWSRESULT_DETAIL>--> </tt:loop> </WSResultDetail> </messageDetail> </WSResult> </tt:template> </tt:transform>
如图,参考的返回xml

对应ABAP代码
FORM frm_analysis_json CHANGING lt_response. DATA: deserializer TYPE REF TO cl_trex_json_deserializer, lv_json TYPE string. DATA: ls_kv TYPE zsrwsresult . DATA: lt_result TYPE zdhkwsresult_detail_tab. CLEAR ls_kv. TRY . DATA: lo_oref TYPE REF TO cx_st_error. CALL TRANSFORMATION zts_oms_response_trans SOURCE XML lt_response RESULT WSResult = ls_kv. CATCH cx_st_error INTO lo_oref . lt_response = lo_oref->get_text( ) . ENDTRY. lt_result = ls_kv-message_detail-wsresult_detail. READ TABLE lt_result INTO DATA(lv_result) INDEX 1. lt_response = ls_kv-success && ls_kv-message && lv_result-result_dtl. ENDFORM.
posted on 2021-07-21 09:01 TorranceZhao 阅读(275) 评论(0) 收藏 举报
浙公网安备 33010602011771号