Code: Alles auswählen.
method IF_MAPPING~EXECUTE.
* initialize iXML
type-pools: ixml.
class cl_ixml definition load.
* create main factory
data: ixmlfactory type ref to if_ixml.
ixmlfactory = cl_ixml=>create( ).
* create stream factory
data: streamfactory type ref to if_ixml_stream_factory.
streamfactory = ixmlfactory->create_stream_factory( ).
* create input stream
data: istream type ref to if_ixml_istream.
istream = streamfactory->create_istream_xstring( source ).
* parse input document ==============================================
* initialize input document
data: idocument type ref to if_ixml_document.
idocument = ixmlfactory->create_document( ).
* parse input document
data: iparser type ref to if_ixml_parser.
iparser = ixmlfactory->create_parser(
stream_factory = streamfactory
istream = istream
document = idocument ).
iparser->parse( ).
* get message content of tag <BookingCode>
data: incode type ref to if_ixml_node_collection.
incode = idocument->get_elements_by_tag_name( 'BookingCode' ).
* get XI header data (here: "Sender Service")
data: l_sender_service type string.
l_sender_service = param->get( if_mapping_param=>sender_service ).
* add trace (appears in message monitoring)
data: l_trace type string.
concatenate 'Sender Service = ' l_sender_service into l_trace.
trace->trace( level = '1'
message = l_trace ).
* build up output document ==========================================
* create output document
data: odocument type ref to if_ixml_document.
odocument = ixmlfactory->create_document( ).
* create element 'SenderService' and add it to the document
data: msgtype type ref to if_ixml_element.
msgtype = odocument->create_simple_element(
name = 'MsgOut'
parent = odocument ).
* create element 'SenderService' and add it to the output document
data: elementsender type ref to if_ixml_element.
elementsender = odocument->create_simple_element(
name = 'SenderService'
value = l_sender_service
parent = msgtype ).
* add node to the output document
data: outcode type ref to if_ixml_node.
outcode = incode->get_item( index = 0 ).
data irc type i.
irc = msgtype->append_child( outcode ).
* render document ===================================================
* create output stream
data: ostream type ref to if_ixml_ostream.
ostream = streamfactory->create_ostream_xstring( result ).
* create renderer
data: renderer type ref to if_ixml_renderer.
renderer = ixmlfactory->create_renderer(
ostream = ostream
document = odocument ).
irc = renderer->render( ).
endmethod.
Sniper_61 hat geschrieben:Hallo,
vielen Dank für deine Antwort. Ich war leider nicht ein paar Tage nicht anwesend.
So wie ich das verstanden habe, ist es ein Interface, womit man in Mapping in ABAP-Umfeld für SAP-XI durchführen kann. DAs Mapping kann mit beliebigen Technologien (Simple Transformations, XSLT etc.) durchgeführt werden.
Ich habe in vielen Berichten gelesen, dass eine Transformation von XML-Daten nach HTML in SAP mit XSLT besser geeignet ist als "Simple Transformations". Aber es wurden keine Gründe genannt. Weißt einer vielleicht mehr darüber?
Gruss
SNIPER
Sniper_61 hat geschrieben:Sniper_61 hat geschrieben:Hallo,
vielen Dank für deine Antwort. Ich war leider nicht ein paar Tage nicht anwesend.
So wie ich das verstanden habe, ist es ein Interface, womit man in Mapping in ABAP-Umfeld für SAP-XI durchführen kann. DAs Mapping kann mit beliebigen Technologien (Simple Transformations, XSLT etc.) durchgeführt werden.
Ich habe in vielen Berichten gelesen, dass eine Transformation von XML-Daten nach HTML in SAP mit XSLT besser geeignet ist als "Simple Transformations". Es wurden aber keine Gründe genannt. Weißt einer vielleicht mehr darüber?
Gruss
SNIPER