在部分时候
Message Mapping
没那么好用,如:需要Rest XML时,可使用 IA 的转换规则,操作如下
大概流程
- 手写转换规则(同SAP STRANS的方法)
- 将转换规则打包为zip
- 上传转换规则
- 更改
Operation Mapping
的Mapping Program
的类型为XML
- 选择上传的xml转换程序
具体步骤
01 手写转换规则
示例如下:- ABAP TO XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version='2.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match='mt_zfi010_req'>
<ufinterface>
<xsl:attribute name="roottag">
<xsl:value-of select="UFINTERFACE/ROOTTAG" />
</xsl:attribute>
<xsl:attribute name="account">
<xsl:value-of select="UFINTERFACE/ACCOUNT" />
</xsl:attribute>
<voucher>
<xsl:attribute name="id">
<xsl:value-of select="ID" />
</xsl:attribute>
<voucher_head>
<pk_accountingbook>
<xsl:value-of select="VOUCHER_HEAD/PK_ACCOUNTINGBOOK" />
</pk_accountingbook>
<memo1>
<xsl:value-of select="VOUCHER_HEAD/MEMO1" />
</memo1>
<memo2>
<xsl:value-of select="VOUCHER_HEAD/MEMO2" />
</memo2>
<reserve1>
<xsl:value-of select="VOUCHER_HEAD/RESERVE1" />
</reserve1>
<reserve2>
<xsl:value-of select="VOUCHER_HEAD/RESERVE2" />
</reserve2>
<details>
<xsl:for-each select="VOUCHER_HEAD/DETIALS">
<item>
<detailindex>
<xsl:value-of select="DETAILINDEX" />
</detailindex>
<globalcreditamount>
<xsl:value-of select="GLOBALCREDITAMOUNT" />
</globalcreditamount>
<ass>
<xsl:for-each select="ASS">
<item>
<pk_Checktype>
<xsl:value-of select="PK_CHECKTYPE" />
</pk_Checktype>
<pk_Checkvalue>
<xsl:value-of select="PK_CHECKVALUE" />
</pk_Checkvalue>
</item>
</xsl:for-each>
</ass>
</item>
</xsl:for-each>
</details>
</voucher_head>
</voucher>
</ufinterface>
</xsl:template>
</xsl:stylesheet>
- XML TO ABAP
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version='2.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match='ufinterface'>
<mt_zfi010_res>
<UFINTERFACE>
<ROOTTAG>
<xsl:value-of select='@roottag' />
</ROOTTAG>
<SENDER>
<xsl:value-of select='@sender' />
</SENDER>
<SUCCESSFUL>
<xsl:value-of select='@successful' />
</SUCCESSFUL>
<SENDRESULT>
<RESULTDESCRIPTION>
<xsl:value-of select='sendresult/resultdescription' />
</RESULTDESCRIPTION>
<CONTENT>
<xsl:value-of select='sendresult/content' />
</CONTENT>
</SENDRESULT>
</UFINTERFACE>
</mt_zfi010_res>
</xsl:template>
</xsl:stylesheet>
02 将转换规则打包
将转换规则的文件打包为一个zip
文件03 新建IA
一个 IA 可放多个 转换规则,此处按 MM 那样,分开request
和response
04 导入 zip 文件
选中刚刚打包的 zip 文件,导入
可双击查看转换规则
05 在OM中使用