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

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.

STRANS一:简单的XML转换的更多相关文章

  1. 一个简单的XML与数组之间的转换

    xml是网络使用最多的数据交换格式,所以,不掌握怎么操作它,又有蛋疼的了. php中可以操作xml的类/函数很多,个人认为最简单的是SimpleXMLElement这个类,它的使用就跟其名字一样:简单 ...

  2. ABAP 内表与XML转换

    1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...

  3. 如何在ASP.NET中用C#将XML转换成JSON

    本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...

  4. 如何在ASP.NET中用C#将XML转换成JSON 【转】

      本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方 ...

  5. 最简单的XML用法

    在传递数据时,XML和JSON是最常用的数据格式,SQL Server从很早的版本就开始支持XML格式,而对于JSON格式,SQL Server从2016版本开始支持.大多数数据库系统并没有升级到SQ ...

  6. Java对象和XML转换

    有时候,我们需要把Java对象转换成XML文件.这时可以用JAXB来实现.(JDK1.6及以后的版本无需导入依赖包,因为已经包含在JDK里了) 假如某个公司有许多部门,每个部门有许多职员,我们可以这样 ...

  7. Dom4j把xml转换成Map(固定格式)

    /** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...

  8. Dom4j把xml转换成Map(非固定格式)

    将xml转换成Map,能够应对不用结构的xml,而不是只针对固定格式的xml.转换规则:1.主要是Map与List的互相嵌套2.同名称的节点会被装进List 示例: import java.util. ...

  9. 非常简单的XML解析(SAX解析、pull解析)

    这里只是把解析的数据当日志打出来了 非常简单的xml解析方式 package com.example.demo.service; import java.io.IOException; import ...

随机推荐

  1. ajax 防止重复提交

    参考链接:http://www.hollischuang.com/archives/931 http://blog.csdn.net/everything1209/article/details/52 ...

  2. mySQL的行转列

    因为MYSQL里边没有  PIVOT      现记录:   原表格:   mysql语句: SELECT MAX(CASE WHEN corol='红' THEN NUM else 0 END) A ...

  3. arcgis for js 根据多边形自动缩放

    交代背景:多边形已经渲染在图层上,然后根据多边形自动缩放值合适的大小: 思路:获取图层信息,获取图层中的几何信息,获取图形范围信息,在地图上设置范围:(下面的方法有封装)记一下思路就好 var pol ...

  4. mysql,jdbc、连接池

    show processlist; select * from information_schema.processlist; Command: The type of command the thr ...

  5. ORA-12557协议适配器不可加载

    背景:以前电脑没有装ORACLE,仅是安装了简易客户端,此次想安装一个11g数据库,安装完成后用PLSQL登录,发现报错. 解决方案A:使用免安装的oracle客户端(instantclient_11 ...

  6. Visual Studio 2010 集成 SP1 补丁 制作 Visual Studio 2010 Service Pack 1 完整版安装光盘的方法

    Now that Visual Studio 2010 SP1 has been released, administrators and developers may wish to install ...

  7. [dart学习]第四篇:函数和操作符(本篇未完待续)

    接着学习dart的函数和操作符. 1.函数Function dart是一种真正的面向对象的语言,通常一个函数也是Function类型的对象,这也就是说可以把函数赋值给一个变量,或者作为另一个函数的入参 ...

  8. java集合的三种遍历方式

    import java.util.ArrayList;  import java.util.Collection;import java.util.Iterator;public class Home ...

  9. java微信公众号支付示例

    开始之前,先准备好:appid.商家号.商户密匙. 工具类: MD5Util.java package com.yiexpress.core.utils.wechat; import java.sec ...

  10. 原创《分享(Angular 和 Vue)按需加载的项目实践优化方案》

    针对前端优化的点有很多,例如:图片压缩,雪碧图,js/css/html 文件的压缩合并,  cdn缓存, 减少重定向, 按需加载 等等 最近有心想针对 ionic项目 和 vue项目,做一个比较大的优 ...