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

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. 从Redis中删除大集合对象的方法

    Redis中的大集合对象,如set.zset等,如果有上千万个元素,一般是不能直接用del命令来删除的,因为del命令可能会耗时几秒钟,而redis本身是单线程的,在高并发的情况下会阻塞大量的请求,严 ...

  2. Python基础训练题-简单数学公式

    1.在100内,将遇到被7除余数为0的都显示PASS: n=1 while n < 101: if n % 7 == 0: pass print('pass') else: print(n) n ...

  3. Docker从零构建php-nginx-alpine镜像

    虽然之前也曾用docker环境运行了一些项目,但对于镜像这块还不是很理解,且鉴于网上现成的镜像都包含太多用不到的库,所以决定从零开始构建一个自己的镜像. alpine linux为基础镜像 docke ...

  4. linux用户键拷贝文件

    如果A用户没有权限写B用户下面的文件,可以用这个命令拷贝 scp AAA.tar.gz B用户名@IP:全路径

  5. github一些事

    我的个人github地址是:https://github.com/BUGDuYu 我们开发团队小组的github地址是: https://github.com/APPdoctrine 资源推荐: gi ...

  6. Redis学习-持久化机制

    Redis持久化的意义 在于故障恢复 比如你部署了一个redis,作为cache缓存,当然也可以保存一些较为重要的数据 如果没有持久化的话,redis遇到灾难性故障的时候(断电.宕机),就会丢失所有的 ...

  7. Git_GitHub-使用过程遇到的问题——坑(持续添加)

    push错误——>master git push -u origin master 最后找到解决办法如下: 1.先删除远程 Git 仓库 $ git remote rm origin 2.再添加 ...

  8. 关于Hibernate 连接mysql不能自动建表的问题

    最近看旧书,李刚那本<轻量级J2EE>在讲解hibernate的时候遇到一个问题,就是与mysql连接后,明明配置了自动建表,却老是建不了表,上网查了发现是方言的原因,到底什么是方言?这里 ...

  9. HBuilder --- MUI , HTML5

    一.创建简单app应用 ① ② ③连接手机 ④ 二.MUI  各组件的运用 http://dev.dcloud.net.cn/mui/snippet/ 三. HTML5plus 参考文档:  http ...

  10. server.xml引入子文件配置(tomcat虚拟主机)

    在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...