zoukankan      html  css  js  c++  java
  • STRANS一:简单的XML转换

    心情不好,泥总把表妹微信给冰冰了,心塞。。。

    1.简单的单层结构:

    <?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.简单的表结构:

    <?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.既有结构又有表:

    <?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的简单转换:

    1.ROOT,这是转换的根节点,开始节点,程序到这就执行转换开始了,后面跟的NAME是对应外面的返回结构名字:比如第三个,外面调用就需要:

      CALL TRANSFORMATION z_ccb_detail_return
          SOURCE XML iv_response_message_xstring
          RESULT output = ls_resp_mapping_result_data.

    把结果返给节点output对应的参数结构。

    2.template这个是没有实际节点的,在简单转换里都是自动生成的,表示模板结构。

    3.后面开始带标签的字段了,注意结构层次,要对应到XML的结构层次,比如第一个:就是RESULT结构名,然后带两个字段。

    结构第一级节点,用ROOT的名字.字段名。这表示这是第一级节点,会直接默认到第一级结构对应的字段。

    如果第二级还是结构,那么第一级的名字作为标签,第二级以第一级的标签为前缀,加上.加上字段名。

    如果有循环的表结构,这时候需要以表名作为标签字段。然后加上loop循环,因为一般到循环已经是深结构了,所以会做个映射。如3.

  • 相关阅读:
    Java学习
    Java学习
    Vue.js学习(十五)—— ref和$refs的使用
    Vue.js学习(十四)—— Vue中的导航守卫(路由守卫)
    Vue.js学习(十二)—— Vue 全局挂载自定义函数
    Vue.js学习(十一)—— 项目开始、首页入门(main.js)
    Vue.js学习(十)—— element-ui 实战各种小技巧(长期更新)(转)
    Vue.js学习(九)—— normalize.css在vue中使用
    Vue.js学习(七)—— Vue开发与调试工具之vscode
    Vue.js学习(六)—— 轻量级JS Cookie插件
  • 原文地址:https://www.cnblogs.com/sapSB/p/10129800.html
Copyright © 2011-2022 走看看