在部分时候 Message Mapping 没那么好用,如:需要Rest XML时,可使用 IA 的转换规则,操作如下

大概流程

  • 手写转换规则(同SAP STRANS的方法)
  • 将转换规则打包为zip
  • 上传转换规则
  • 更改 Operation MappingMapping Program 的类型为 XML
  • 选择上传的xml转换程序

    具体步骤

    01 手写转换规则

    示例如下:

    - ABAP TO XML

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <xsl:stylesheet version='2.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
    4. <xsl:strip-space elements="*" />
    5. <xsl:template match='mt_zfi010_req'>
    6. <ufinterface>
    7. <xsl:attribute name="roottag">
    8. <xsl:value-of select="UFINTERFACE/ROOTTAG" />
    9. </xsl:attribute>
    10. <xsl:attribute name="account">
    11. <xsl:value-of select="UFINTERFACE/ACCOUNT" />
    12. </xsl:attribute>
    13. <voucher>
    14. <xsl:attribute name="id">
    15. <xsl:value-of select="ID" />
    16. </xsl:attribute>
    17. <voucher_head>
    18. <pk_accountingbook>
    19. <xsl:value-of select="VOUCHER_HEAD/PK_ACCOUNTINGBOOK" />
    20. </pk_accountingbook>
    21. <memo1>
    22. <xsl:value-of select="VOUCHER_HEAD/MEMO1" />
    23. </memo1>
    24. <memo2>
    25. <xsl:value-of select="VOUCHER_HEAD/MEMO2" />
    26. </memo2>
    27. <reserve1>
    28. <xsl:value-of select="VOUCHER_HEAD/RESERVE1" />
    29. </reserve1>
    30. <reserve2>
    31. <xsl:value-of select="VOUCHER_HEAD/RESERVE2" />
    32. </reserve2>
    33. <details>
    34. <xsl:for-each select="VOUCHER_HEAD/DETIALS">
    35. <item>
    36. <detailindex>
    37. <xsl:value-of select="DETAILINDEX" />
    38. </detailindex>
    39. <globalcreditamount>
    40. <xsl:value-of select="GLOBALCREDITAMOUNT" />
    41. </globalcreditamount>
    42. <ass>
    43. <xsl:for-each select="ASS">
    44. <item>
    45. <pk_Checktype>
    46. <xsl:value-of select="PK_CHECKTYPE" />
    47. </pk_Checktype>
    48. <pk_Checkvalue>
    49. <xsl:value-of select="PK_CHECKVALUE" />
    50. </pk_Checkvalue>
    51. </item>
    52. </xsl:for-each>
    53. </ass>
    54. </item>
    55. </xsl:for-each>
    56. </details>
    57. </voucher_head>
    58. </voucher>
    59. </ufinterface>
    60. </xsl:template>
    61. </xsl:stylesheet>

    - XML TO ABAP

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <xsl:stylesheet version='2.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
    4. <xsl:strip-space elements="*" />
    5. <xsl:template match='ufinterface'>
    6. <mt_zfi010_res>
    7. <UFINTERFACE>
    8. <ROOTTAG>
    9. <xsl:value-of select='@roottag' />
    10. </ROOTTAG>
    11. <SENDER>
    12. <xsl:value-of select='@sender' />
    13. </SENDER>
    14. <SUCCESSFUL>
    15. <xsl:value-of select='@successful' />
    16. </SUCCESSFUL>
    17. <SENDRESULT>
    18. <RESULTDESCRIPTION>
    19. <xsl:value-of select='sendresult/resultdescription' />
    20. </RESULTDESCRIPTION>
    21. <CONTENT>
    22. <xsl:value-of select='sendresult/content' />
    23. </CONTENT>
    24. </SENDRESULT>
    25. </UFINTERFACE>
    26. </mt_zfi010_res>
    27. </xsl:template>
    28. </xsl:stylesheet>

    02 将转换规则打包

    将转换规则的文件打包为一个 zip 文件

    03 新建IA

    一个 IA 可放多个 转换规则,此处按 MM 那样,分开 requestresponse
    image.png

    04 导入 zip 文件

    选中刚刚打包的 zip 文件,导入
    image.png
    可双击查看转换规则
    image.png

    05 在OM中使用

    image.png