‎2008 Aug 12 10:23 AM
how to download any report in xml. directly thru code.
means if a report is run report should be download in xml format.
any fuction module ???
points will be awarded.
‎2008 Aug 12 10:28 AM
use Fm GUI_DOWNLOAD
and give the file format as 'XML'
Regards,
kushagra sharma
‎2008 Aug 12 10:29 AM
i assume you have an internal table which you are displaying as a list and the same is required to be converted into xml format.
you can use the CALL TRANSFORMATION statement to do the same.
‎2008 Aug 12 10:31 AM
no my queastion is i have one report which in heirachal ALV.
its running well and fine.
now it should run in back ground and report should save in XML format.
‎2008 Aug 12 10:32 AM
no my queastion is i have one report which in heirachal ALV.
its running well and fine.
now it should run in back ground and report should save in XML format automatically
‎2008 Aug 13 6:17 AM
‎2008 Aug 12 10:33 AM
Hi check this one ......
&----
*& Report ZTEST_XML2 *
*& *
&----
*& *
*& *
&----
REPORT ZTEST_XML2 .
TYPE-POOLS: ixml.
TYPES: BEGIN OF xml_line,
data(256) TYPE x,
END OF xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_ostream TYPE REF TO if_ixml_ostream,
l_renderer TYPE REF TO if_ixml_renderer,
l_document TYPE REF TO if_ixml_document.
DATA: l_element_flights TYPE REF TO if_ixml_element,
l_element_airline TYPE REF TO if_ixml_element,
l_element_flight TYPE REF TO if_ixml_element,
l_element_from TYPE REF TO if_ixml_element,
l_element_to TYPE REF TO if_ixml_element,
l_element_dummy TYPE REF TO if_ixml_element,
l_value TYPE string.
DATA: l_xml_table TYPE TABLE OF xml_line,
l_xml_size TYPE i,
l_rc TYPE i.
DATA: lt_spfli TYPE TABLE OF spfli.
DATA: l_spfli TYPE spfli.
START-OF-SELECTION.
Fill the internal table
SELECT * FROM spfli INTO TABLE lt_spfli.
Sort internal table
SORT lt_spfli BY carrid.
Start filling xml dom object from internal table
LOOP AT lt_spfli INTO l_spfli.
AT FIRST.
Creating a ixml factory
l_ixml = cl_ixml=>create( ).
Creating the dom object model
l_document = l_ixml->create_document( ).
Fill root node with value flights
l_element_flights = l_document->create_simple_element(
name = 'flights'
parent = l_document ).
ENDAT.
AT NEW carrid.
Create element 'airline' as child of 'flights'
l_element_airline = l_document->create_simple_element(
name = 'airline'
parent = l_element_flights ).
Create attribute 'code' of node 'airline'
l_value = l_spfli-carrid.
l_rc = l_element_airline->set_attribute( name = 'code' value =
l_value ).
Create attribute 'name' of node 'airline'
SELECT SINGLE carrname FROM scarr INTO l_value WHERE carrid EQ
l_spfli-carrid.
l_rc = l_element_airline->set_attribute( name = 'name' value =
l_value ).
ENDAT.
AT NEW connid.
Create element 'flight' as child of 'airline'
l_element_flight = l_document->create_simple_element(
name = 'flight'
parent = l_element_airline ).
Create attribute 'number' of node 'flight'
l_value = l_spfli-connid.
l_rc = l_element_flight->set_attribute( name = 'number' value =
l_value ).
ENDAT.
Create element 'from' as child of 'flight'
CONCATENATE l_spfli-cityfrom ',' l_spfli-countryfr INTO l_value.
l_element_from = l_document->create_simple_element(
name = 'from'
value = l_value
parent = l_element_flight ).
Create attribute 'airport' of node 'from'
l_value = l_spfli-airpfrom.
l_rc = l_element_from->set_attribute( name = 'airport' value =
l_value ).
Create element 'to' as child of 'flight'
CONCATENATE l_spfli-cityto ',' l_spfli-countryto INTO l_value.
l_element_to = l_document->create_simple_element(
name = 'to'
value = l_value
parent = l_element_flight ).
Create attribute 'airport' of node 'from'
l_value = l_spfli-airpto.
l_rc = l_element_to->set_attribute( name = 'airport' value =
l_value ).
Create element 'departure' as child of 'flight'
l_value = l_spfli-deptime.
l_element_dummy = l_document->create_simple_element(
name = 'departure'
value = l_value
parent = l_element_flight ).
Create element 'arrival' as child of 'flight'
l_value = l_spfli-arrtime.
l_element_dummy = l_document->create_simple_element(
name = 'arrival'
value = l_value
parent = l_element_flight ).
Create element 'type' as child of 'flight'
CASE l_spfli-fltype.
WHEN 'X'.
l_value = 'Charter'.
WHEN OTHERS.
l_value = 'Scheduled'.
ENDCASE.
l_element_dummy = l_document->create_simple_element(
name = 'type'
value = l_value
parent = l_element_flight ).
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE 'No data into db table ''spfli'' type 'E'.
please run program
***''SAPBC_DATA_GENERATOR'' with transaction ''SA38''' TYPE 'E'.
ENDIF.
Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
Connect internal XML table to stream factory
l_ostream = l_streamfactory->create_ostream_itable( table =
l_xml_table ).
Rendering the document
l_renderer = l_ixml->create_renderer( ostream = l_ostream
document = l_document ).
l_rc = l_renderer->render( ).
Saving the XML document
l_xml_size = l_ostream->get_num_written_raw( ).
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_xml_size
filename = 'c:\temp\flights.xml'
filetype = 'BIN'
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Regards,
Prasad.
‎2008 Aug 13 4:33 AM
hello suppoase this the program. KSCHL may be different.
tell me how to download in xml. using call transform/
REPORT ZSD_UTXJ .
tables: a368 , konp.
data: begin of it_utxj occurs 0,
KSCHL like a368-KSCHL,
aland like a368-aland,
wkreg like a368-wkreg,
regio like a368-regio,
TAXK1 like a368-TAXK1,
TAXM1 like a368-TAXM1,
DATBI like a368-DATBI,
DATAB like a368-DATAB,
KNUMH like a368-KNUMH,
MWSK1 like konp-MWSK1,
end of it_utxj.
********************
DATA : mc_filename LIKE rlgrap-filename.
DATA : filename TYPE string.
************************
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: S_DATE FOR A368-DATBI.
SELECTION-SCREEN: END OF BLOCK b1.
start-of-selection.
perform getdata.
IF IT_UTXJ[] IS NOT INITIAL.
perform display1.
perform display.
ENDIF.
end-of-selection.
&----
*& Form getdata
&----
text
----
--> p1 text
<-- p2 text
----
FORM getdata .
select aKSCHL aaland awkreg aregio aTAXK1 aTAXM1 aDATBI aDATAB aKNUMH bMWSK1
into CORRESPONDING FIELDS OF TABLE it_UTXJ
from a368 as a inner join konp as b on akschl = bkschl
and aknumh = bknumh
*UP TO 1 ROWS
where A~KSCHL = 'UTXJ' and
A~DATAB <= S_DATE-LOW
AND A~DATBI >= S_DATE-low
order by a~datab descending.
ENDFORM.