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)    收藏  举报

导航