Current Poll
Code snippet to show the usage of the ABAP Call Transformation to transform the data easily into the excel format by XML and download it.
Download EXCEL using CALL TRANSFORMATION
DATA: t_t100 TYPE STANDARD TABLE OF t100. DATA: lv_xml TYPE string. DATA: lo_xml_doc TYPE REF TO cl_xml_document. * SELECT * FROM t100 INTO TABLE t_t100 UP TO 100 ROWS WHERE SPRSL EQ sy-langu. * CALL TRANSFORMATION id SOURCE data_node = t_t100 RESULT XML lv_xml. * CREATE OBJECT lo_xml_doc. lo_xml_doc->parse_string( lv_xml ). lo_xml_doc->export_to_file( 'c:tempt100.xls' ).
Opening up the file in excel:
File as XML
Remove VERSION from the File
DATA: t_t100 TYPE STANDARD TABLE OF t100. DATA: lv_xml TYPE string. DATA: lo_xml_doc TYPE REF TO cl_xml_document. * SELECT * FROM t100 INTO TABLE t_t100 UP TO 100 ROWS WHERE SPRSL EQ sy-langu. * CALL TRANSFORMATION id SOURCE data_node = t_t100 RESULT XML lv_xml. * REPLACE FIRST OCCURRENCE OF '<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">' IN lv_xml WITH '<asx:abap xmlns:asx="http://www.sap.com/abapxml">'. * CREATE OBJECT lo_xml_doc. lo_xml_doc->parse_string( lv_xml ). lo_xml_doc->export_to_file( 'c:tempt100.xls' ).
No more version column:
Do you have a Code Snippet which you want to share, Submit Code Snippet here
I don’t really like a processed XML object being serialized to string, worked over with text processing and being de-serialized back again to remove an XML attribute…
Why not use the methods the way they are designed to be used:
Hello Rudolf,
I think I had tried to set the version by using the method SET_VERSION, but it sets the version of the XML document to blank, not the version within the asx:abap node.
?xml version=””?
Due to this, the document wont open in excel.
I even tried to parse the nodes from XML and tried to use the SET_VERSION column, but it actually leaves the VERSION tag as is but only replaces the value. Hence used the STRING and REplace.
Thanks,
Naimesh Patel
Hi Naimesh,
How do we give custom column headings in this?
Regards
Mohit
Hello Mohit,
I think using this ID transformation, it is not possible to change the column names. ID transformation is the identity transformation which is used for copying the source documents to target and vice versa. So, there is no space for any change.
Thanks,
Naimesh Patel
Hi Naimesh,
Thanks for creating this post.
Is it possible to create an XML using a XML Schema file (.XSD) in SAP?
I have an XSD file which is according to the requirements of a Partner System, and I need to generate a XML file using this schema.
Thanks & Regards
Siddharth
Most simple way would be to generate classes an transformations as described here:
http://sapblog.rmtiwari.com/2012/10/power-of-core-using-xsd-for-xml.html
Then you can generate a valid xml tha fulfils the specification given.
Back to the other question:
Though it is not possible to change anything using the id transform (as Naimesh correctly stated),
you can of course write a simple xslt that does the job.
In this case you even could use ST (Simple Transformations)
As Rudolf said, we are playing processed XML. But when no other ways look helpful, this trick does the work.. π
Thanks Naimesh.. Exactly found what I needed today.. π
Regards,
Raju.