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

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. 2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...

  2. redis 在 php 中的应用(List篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: List(列表) LPUSH LPUSHX RPUSH R ...

  3. Javascript在使用import 与export 区别及使用

    一.import与export的用法 1.import的几种用法 import defautName from 'modules.js'; import { export } from 'module ...

  4. leetcode 二进制求和 python

    class Solution: def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str ...

  5. Java中==和equals方法

    Java程序中测试两个变量是否相等有两种方式:1.== :2.equals()方法 当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是基本数值类型(不一定要求数据类型严格相同),则 ...

  6. Varnish 初识

    基础 Varnish Cache是​​一种Web应用程序加速器,也称为缓存HTTP反向代理.您将它安装在任何HTTP的服务器前面,并将其配置为缓存内容.Varnish Cache非常非常快.它通常可以 ...

  7. 重写Java中包装类的方法

    知识点一.Object类Object是所有类的父类.Object中的方法有:toString() 描述对象的信息,需要重写.System.out.println在打印对象的时候会默认调用对象的toSt ...

  8. 解决js的 Math取正弦值 余弦值不准确的问题

    //角度 var  vAngle=90: //正弦值 var vSin=Math.round(Math.sin((vAngle * Math.PI/180)) * 1000000) / 1000000 ...

  9. asp.net简繁体转换

    简繁体转换添加Microsoft.VisualBasic.dll引用 //简转繁 string str= Microsoft.VisualBasic.Strings.StrConv("民生银 ...

  10. oracle 审计功能

    Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...