STRANS一:簡單的XML轉換

心情很差,泥總把表妹微信給冰冰了,心塞。。。微信

1.簡單的單層結構:app

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="ROOT"/>
  <tt:template>
    <result>
      <error>
        <tt:value ref="ROOT.error"/>
      </error>
      <message>
        <tt:value ref="ROOT.message"/>
      </message>
    </result>
  </tt:template>
</tt:transform>

2.簡單的表結構:oop

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="ROOT"/>
  <tt:template>
    <Repairs>
      <tt:loop name="I" ref="ROOT">
        <Request>
          <Id>
            <tt:value ref="$I.ZID"/>
          </Id>
          <ProductName>
            <tt:value ref="$I.ZPRODUCT"/>
          </ProductName>
          <BrandName>
            <tt:value ref="$I.ZBRAND"/>
          </BrandName>
          <StoreName>
            <tt:value ref="$I.ZSTNAME"/>
          </StoreName>
          <RepairerName>
            <tt:value ref="$I.ZREPNAME"/>
          </RepairerName>
          <Created>
            <tt:value ref="$I.ZCREATED"/>
          </Created>
          <Updated>
            <tt:value ref="$I.ZUPDATED"/>
          </Updated>
          <StatusCode>
            <tt:value ref="$I.ZSTATUS"/>
          </StatusCode>
          <StatusText>
            <tt:value ref="$I.ZSTATUST"/>
          </StatusText>
          <Overdue>
            <tt:value ref="$I.ZOVERDUE"/>
          </Overdue>
        </Request>
      </tt:loop>
    </Repairs>
  </tt:template>
</tt:transform>

3.既有結構又有表:spa

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="OUTPUT"/>
  <tt:template>
    <TX>
      <REQUEST_SN>
        <tt:value ref="OUTPUT.REQUEST_SN"/>
      </REQUEST_SN>
      <CUST_ID>
        <tt:value ref="OUTPUT.CUST_ID"/>
      </CUST_ID>
      <TX_CODE>
        <tt:value ref="OUTPUT.TX_CODE"/>
      </TX_CODE>
      <RETURN_CODE>
        <tt:value ref="OUTPUT.RETURN_CODE"/>
      </RETURN_CODE>
      <RETURN_MSG>
        <tt:value ref="OUTPUT.RETURN_MSG"/>
      </RETURN_MSG>
      <LANGUAGES>
        <tt:value ref="OUTPUT.LANGUAGES"/>
      </LANGUAGES>
      <TX_INFO>
        <ACCNO1>
          <tt:value ref="OUTPUT.TX_INFO.ACCNO1"/>
        </ACCNO1>
        <CURR_COD>
          <tt:value ref="OUTPUT.TX_INFO.CURR_COD"/>
        </CURR_COD>
        <ACC_NAME>
          <tt:value ref="OUTPUT.TX_INFO.ACC_NAME"/>
        </ACC_NAME>
        <ACC_ORGAN>
          <tt:value ref="OUTPUT.TX_INFO.ACC_ORGAN"/>
        </ACC_ORGAN>
        <ACC_STATE>
          <tt:value ref="OUTPUT.TX_INFO.ACC_STATE"/>
        </ACC_STATE>
        <INTR>
          <tt:value ref="OUTPUT.TX_INFO.INTR"/>
        </INTR>
        <TOTAL_PAGE>
          <tt:value ref="OUTPUT.TX_INFO.TOTAL_PAGE"/>
        </TOTAL_PAGE>
        <PAGE>
          <tt:value ref="OUTPUT.TX_INFO.PAGE"/>
        </PAGE>
        <POSTSTR>
          <tt:value ref="OUTPUT.TX_INFO.POSTSTR"/>
        </POSTSTR>
        <FLAG>
          <tt:value ref="OUTPUT.TX_INFO.FLAG"/>
        </FLAG>
        <FILE_LOCSTR>
          <tt:value ref="OUTPUT.TX_INFO.FILE_LOCSTR"/>
        </FILE_LOCSTR>
        <DETAILLIST>
          <tt:loop name="I" ref="OUTPUT.TX_INFO.DETAILLIST.DETAILINFO">
            <DETAILINFO>
              <TRANDATE>
                <tt:value ref="$I.TRANDATE"/>
              </TRANDATE>
              <TRANTIME>
                <tt:value ref="$I.TRANTIME"/>
              </TRANTIME>
              <CRE_TYP>
                <tt:value ref="$I.CRE_TYP"/>
              </CRE_TYP>
              <CRE_NO>
                <tt:value ref="$I.CRE_NO"/>
              </CRE_NO>
              <MESSAGE>
                <tt:value ref="$I.MESSAGE"/>
              </MESSAGE>
              <AMT>
                <tt:value ref="$I.AMT"/>
              </AMT>
              <AMT1>
                <tt:value ref="$I.AMT1"/>
              </AMT1>
              <FLAG1>
                <tt:value ref="$I.FLAG1 "/>
              </FLAG1>
              <ACCNO2>
                <tt:value ref="$I.ACCNO2"/>
              </ACCNO2>
              <ACC_NAME1>
                <tt:value ref="$I.ACC_NAME1"/>
              </ACC_NAME1>
              <FLAG2>
                <tt:value ref="$I.FLAG2"/>
              </FLAG2>
              <TRAN_FLOW>
                <tt:value ref="$I.TRAN_FLOW"/>
              </TRAN_FLOW>
              <BFLOW>
                <tt:value ref="$I.BFLOW"/>
              </BFLOW>
              <DET_NO>
                <tt:value ref="$I.DET_NO"/>
              </DET_NO>
              <DET>
                <tt:value ref="$I.DET"/>
              </DET>
              <REAL_TRANDATE>
                <tt:value ref="$I.REAL_TRANDATE"/>
              </REAL_TRANDATE>
              <RLTV_ACCNO>
                <tt:value ref="$I.RLTV_ACCNO"/>
              </RLTV_ACCNO>
              <CADBank_Nm>
                <tt:value ref="$I.CADBank_Nm"/>
              </CADBank_Nm>
              <Ovrlsttn_Trck_No>
                <tt:value ref="$I.Ovrlsttn_Trck_No"/>
              </Ovrlsttn_Trck_No>
              <ExoStm_Py_Rmrk>
                <tt:value ref="$I.ExoStm_Py_Rmrk"/>
              </ExoStm_Py_Rmrk>
            </DETAILINFO>
          </tt:loop>
        </DETAILLIST>
      </TX_INFO>
    </TX>
  </tt:template>
</tt:transform>

下面就簡單說說Strans的簡單轉換:code

1.ROOT,這是轉換的根節點,開始節點,程序到這就執行轉換開始了,後面跟的NAME是對應外面的返回結構名字:好比第三個,外面調用就須要:orm

  CALL TRANSFORMATION z_ccb_detail_return
      SOURCE XML iv_response_message_xstring
      RESULT output = ls_resp_mapping_result_data.

把結果返給節點output對應的參數結構。xml

2.template這個是沒有實際節點的,在簡單轉換裏都是自動生成的,表示模板結構。blog

3.後面開始帶標籤的字段了,注意結構層次,要對應到XML的結構層次,好比第一個:就是RESULT結構名,而後帶兩個字段。string

結構第一級節點,用ROOT的名字.字段名。這表示這是第一級節點,會直接默認到第一級結構對應的字段。io

若是第二級仍是結構,那麼第一級的名字做爲標籤,第二級以第一級的標籤爲前綴,加上.加上字段名。

若是有循環的表結構,這時候須要以表名做爲標籤字段。而後加上loop循環,由於通常到循環已是深結構了,因此會作個映射。如3.

相關文章
相關標籤/搜索