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.

  • 相关阅读:
    C++学习9 this指针详解
    福建省第八届 Triangles
    UVA 11584 Partitioning by Palindromes
    POJ 2752 Seek the Name, Seek the Fame
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    HDU 2988 Dark roads(kruskal模板题)
    HDU 1385 Minimum Transport Cost
    HDU 2112 HDU Today
    HDU 1548 A strange lift(最短路&&bfs)
  • 原文地址:https://www.cnblogs.com/sapSB/p/10129800.html
Copyright © 2011-2022 走看看