冰影寒沙

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近在做sap访问.net平台写的webservice(哈,之前小弟一直做的.net开发)

然后,肯定要传数据,就准备在abap端把数据序列化成xml字符串,然后发送给webservice

下边是将数据转换成xml的方法。用到的是Transformation

关于ST的OnlineHelp,请查看:http://help.sap.com/saphelp_nw2004s/helpdata/en/e3/7d4719ca581441b6841f1054ff1326/frameset.htm

1、创建Transformation,事务码:STRANS,Transformation Type选择为Simple Transformation,名称假定为Z_LOOP_TEST1,内容如下:

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
<tt:root name="root"/>
<tt:root name="header"/>
<tt:template>
    <header>
        <date>
            <tt:value ref="HEADER.DATUM" />
        </date>
        <time>
            <tt:value ref="HEADER.UZEIT" />
        </time>
    </header>
    <material>
        <tt:loop ref="ROOT" name="line">
            <matnr>
                <tt:value ref="$line.matnr" />
            </matnr>
            <maktx>
                <tt:value ref="$line.maktx" />
            </maktx>
        </tt:loop>
    </material>
</tt:template>
</tt:transform>

2、创建调用程序,注意Internal Table不能带Header Line,内容如下:

*&---------------------------------------------------------------------*
*& Report Z_TRANSFORMATION_TEST1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT z_transformation_test1
LINE-SIZE 500.

DATA: xml_string TYPE string.

DATA: BEGIN OF line,
        matnr(18) TYPE c,
        maktx(40) TYPE c,
      END OF line,

      BEGIN OF header,
        datum LIKE sy-datum,
        uzeit LIKE sy-uzeit,
      END OF header,

      itab LIKE TABLE OF line.

header-datum = sy-datum.
header-uzeit = sy-uzeit.

line-matnr = 'C075'.
line-maktx = '6120H车型'.
APPEND line TO itab.

line-matnr = 'C076'.
line-maktx = '6100H车型'.
APPEND line TO itab.

line-matnr = space.
line-maktx = space.
APPEND line TO itab.

CALL TRANSFORMATION z_loop_test
OPTIONS xml_header = 'no'
SOURCE root = itab
         header = header
RESULT XML xml_string.

WRITE: AT /1 xml_string.

posted on 2011-07-01 09:03  冰影寒沙  阅读(3471)  评论(0)    收藏  举报