我想使用b
XML转换从内部表生成XML,但是某些XML元素名称需要个性化。
程序:
ID
结果TYPES: BEGIN OF t_vbpa,
parvw TYPE vbpa-parvw,
END OF t_vbpa,
BEGIN OF t_vbap,
matnr TYPE vbap-matnr,
vbpas TYPE STANDARD TABLE OF t_vbpa WITH EMPTY KEY,
END OF t_vbap,
BEGIN OF t_vbak,
vbeln TYPE vbak-vbeln,
vbaps TYPE STANDARD TABLE OF t_vbap WITH EMPTY KEY,
END OF t_vbak.
DATA: vbak TYPE t_vbak.
vbak = VALUE #( vbeln = '13'
vbaps = VALUE #(
( matnr = 'C20050'
vbpas = VALUE #(
( parvw = 'AG' ) ) ) ) ).
" Generate a default XML
DATA xml_out TYPE string.
CALL TRANSFORMATION ('ID')
SOURCE vbak = vbak
RESULT XML xml_out.
:
xml_out
我想将第一个<?xml version="1.0" encoding="utf-16"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VBAK>
<VBELN>13</VBELN>
<VBAPS>
<item>
<MATNR>C20050</MATNR>
<VBPAS>
<item>
<PARVW>AG</PARVW>
</item>
</VBPAS>
</item>
</VBAPS>
</VBAK>
</asx:values>
</asx:abap>
元素重命名为item
,将第二个item_VBAP
元素重命名为item
,如下所示:
item_VBPA
任何想法如何做到这一点?
答案 0 :(得分:4)
ID
转换由SAP提供,无法个性化。
相反,请使用交易代码SE80
或STRANS
撰写XSLT或Simple Transformation,并在CALL TRANSFORMATION
之后指定其名称,以代替ID
}。
答案 1 :(得分:0)
要完成@vwegert答案,下面是一个简单转换的示例:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="VBAK"/>
<tt:template>
<VBAK>
<VBELN tt:value-ref="VBAK.VBELN"/>
<VBAPS>
<tt:loop ref="VBAK.VBAPS">
<line_VBAP>
<MATNR tt:value-ref="$ref.MATNR"/>
<VBPAS>
<tt:loop ref="$ref.VBPAS">
<line_VBPA>
<PARVW tt:value-ref="$ref.PARVW"/>
</line_VBPA>
</tt:loop>
</VBPAS>
</line_VBAP>
</tt:loop>
</VBAPS>
</VBAK>
</tt:template>
</tt:transform>