2008 Nov 17 8:17 AM
Hi all,
Here is the format in which I want the output XML file:
<?xml version="1.0" Encoding = 'UTF-8"?>
- <edsn:ListMasterDataNonStuuraansluiting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:edsn="http://www.edsn.nl/Stuursignaal" xsi:schemaLocation="http://www.edsn.nl/Stuursignaal http://www.edsn.nl/Stuursignaal/ListMasterDataNonStuuraansluiting.xsd">;
<DocumentHeader>
<SenderID>8717177000000</SenderID>
<ReceiverID>8712423010208</ReceiverID>
<DocumentID>1001</DocumentID>
</DocumentHeader>
<Responsible>
<ResponsibleID>11000</ResponsibleID>
<MasterDataNonStuuraansluiting>
<Date>20081117</Date>
<Annual_Usage>000000003001</Annual_Usage>
</MasterDataNonStuuraansluiting>
<MasterDataNonStuuraansluiting>
<Date>20081118</Date>
<Annual_Usage>000000003001</Annual_Usage>
</MasterDataNonStuuraansluiting>
</Responsible>
<Responsible>
<ResponsibleID>22000</ResponsibleID>
<MasterDataNonStuuraansluiting>
<Date>20081118</Date>
<Annual_Usage>000000004001</Annual_Usage>
</MasterDataNonStuuraansluiting>
</Responsible>
</edsn:ListMasterDataNonStuuraansluiting>
{/color} {/font}
I have used the following methods (in the order specified): 1. cl_ixml=>create( ); 2. lv_ixml->create_document( ); 3. lv_document->create_simple_element( ); 4. lv_ixml->create_stream_factory( ) 5. lv_streamfactory->create_ostream_itable( ); 6. lv_ixml->create_renderer( ); 7. lv_ostream->get_num_written_raw( ).
However, when i get the final data in the internal table 'lt_xml_table', it is in Binary/Hexadec format. How can i write this to the application server?
I tried using:
DATA: lv_string(256) TYPE c,
lt_xml_table TYPE TABLE OF xml_line,
wa_xml TYPE xml_line .
co_path = path on application server.
OPEN DATASET co_fpath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT lt_xml_table INTO wa_xml.
MOVE wa_xml-data TO lv_string.
TRANSFER lv_string TO co_fpath.
CLEAR: lv_string.
ENDLOOP.
CLOSE DATASET co_fpath.
{/code}
But it doesnt work. Kindly help.
Hi all,
Here is the format in which I want the output XML file:
<?xml version="1.0" Encoding = 'UTF-8"?>
- <edsn:ListMasterDataNonStuuraansluiting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:edsn="http://www.edsn.nl/Stuursignaal" xsi:schemaLocation="http://www.edsn.nl/Stuursignaal http://www.edsn.nl/Stuursignaal/ListMasterDataNonStuuraansluiting.xsd">;
<DocumentHeader>
<SenderID>8717177000000</SenderID>
<ReceiverID>8712423010208</ReceiverID>
<DocumentID>1001</DocumentID>
</DocumentHeader>
<Responsible>
<ResponsibleID>11000</ResponsibleID>
<MasterDataNonStuuraansluiting>
<Date>20081117</Date>
<Annual_Usage>000000003001</Annual_Usage>
</MasterDataNonStuuraansluiting>
<MasterDataNonStuuraansluiting>
<Date>20081118</Date>
<Annual_Usage>000000003001</Annual_Usage>
</MasterDataNonStuuraansluiting>
</Responsible>
<Responsible>
<ResponsibleID>22000</ResponsibleID>
<MasterDataNonStuuraansluiting>
<Date>20081118</Date>
<Annual_Usage>000000004001</Annual_Usage>
</MasterDataNonStuuraansluiting>
</Responsible>
</edsn:ListMasterDataNonStuuraansluiting>
{/color} {/font}
I have used the following methods (in the order specified): 1. cl_ixml=>create( ); 2. lv_ixml->create_document( ); 3. lv_document->create_simple_element( ); 4. lv_ixml->create_stream_factory( ) 5. lv_streamfactory->create_ostream_itable( ); 6. lv_ixml->create_renderer( ); 7. lv_ostream->get_num_written_raw( ).
However, when i get the final data in the internal table 'lt_xml_table', it is in Binary/Hexadec format. How can i write this to the application server?
I tried using:
DATA: lv_string(256) TYPE c,
lt_xml_table TYPE TABLE OF xml_line,
wa_xml TYPE xml_line .
co_path = path on application server.
OPEN DATASET co_fpath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT lt_xml_table INTO wa_xml.
MOVE wa_xml-data TO lv_string.
TRANSFER lv_string TO co_fpath.
CLEAR: lv_string.
ENDLOOP.
CLOSE DATASET co_fpath.
{/code}
But it doesnt work. Kindly help.
2008 Nov 17 8:21 AM
2008 Nov 17 8:44 AM
Look at this code, it is generating XML. But iam not using methods in it.
SELECT * FROM lfa1 INTO TABLE itab_lfa1
WHERE erdat = sy-datum
AND LIFNR IN VENDOR.
IF sy-subrc <> 0.
WRITE:/ 'No new vendor created on date ' , sy-datum."dd/mm/yyyy
.
WRITE:/ 'Hence NO XML generated'.
EXIT.
ENDIF.
PERFORM create_xml_vendor.
*&---------------------------------------------------------------------*
*& Form CREATE_XML_vendor
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM create_xml_vendor.
* CONCATENATE '<TRANSPORTERLISTdate ="' today '">' INTO itab-txt.
ITAB-TXT = '<TRANSPORTERLIST>'.
APPEND itab.
LOOP AT itab_lfa1 INTO wa_lfa1.
itab-txt = '<TRANSPORTER>' .
APPEND itab.
CONCATENATE '<' 'TNAME>' wa_lfa1-name1 '</'
'TNAME>' INTO itab-txt.
APPEND itab.
CONCATENATE '<' 'TCODE>' wa_lfa1-lifnr '</'
'TCODE>' INTO itab-txt.
APPEND itab.
CONCATENATE '<' 'BLOCK>' wa_lfa1-sperm '</'
'BLOCK>' INTO itab-txt.
APPEND itab.
CONCATENATE '<' 'SEARCHTERM>' wa_lfa1-sortl '</'
'SEARCHTERM>' INTO itab-txt.
APPEND itab .
*" sleect company code from table lfb5
SELECT SINGLE bukrs INTO ccode FROM lfb5 WHERE
lifnr = wa_lfa1-lifnr.
CONCATENATE '<' 'COMPCODE>' ccode '</'
'COMPCODE>' INTO itab-txt.
APPEND itab .
*"ADD HOUSE NO AN STREET IN ADDRESS1
CONCATENATE '<' 'ADDR1>' wa_lfa1-stras '</'
'ADDR1>' INTO itab-txt.
APPEND itab .
*"ADD CITY IN ADDRESS2
CONCATENATE '<' 'ADDR2>' wa_lfa1-ort01 '</'
'ADDR2>' INTO itab-txt.
APPEND itab .
*"ADD DISTRICT IN ADDRESS3
CONCATENATE '<' 'ADDR3>' wa_lfa1-ort02 '</'
'ADDR3>' INTO itab-txt.
APPEND itab .
CONCATENATE '<' 'ADDR4>' wa_lfa1-pstlz '</'
'ADDR4>' INTO itab-txt.
APPEND itab .
CONCATENATE '<' 'TEL1>' wa_lfa1-telf1 '</'
'TEL1>' INTO itab-txt.
APPEND itab .
CONCATENATE '<' 'TEL2>' wa_lfa1-telf2 '</'
'TEL2>' INTO itab-txt.
APPEND itab .
CONCATENATE '<' 'VAT_REG>'
wa_lfa1-stceg '</'
'VAT_REG>' INTO itab-txt.
APPEND itab .
CONCATENATE '<' 'VAT_LIAB>'
wa_lfa1-stkzu '</'
'VAT_LIAB>' INTO itab-txt.
APPEND itab .
itab-txt = '</TRANSPORTER>' .
APPEND itab.
ENDLOOP.
ITAB-TXT = '</TRANSPORTERLIST>'.
APPEND itab.
*
* itab-txt = '</TRANSPORTERLIST>' .
* APPEND itab.
PERFORM write_to_file.
ENDFORM. "CREATE_XML_vendor
*&---------------------------------------------------------------------*
*& Form write_to_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM write_to_file.
DATA : txt(800).
CONCATENATE zfname 'Transporter' sy-datum sy-uzeit '.XML'
INTO filename .
OPEN DATASET filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
LOOP AT itab.
MOVE itab-txt TO txt.
CONDENSE txt.
TRANSFER txt TO filename.
ENDLOOP.
WRITE : / 'FILE CREATED' , filename.
COMMIT WORK.
WAIT UP TO 1 SECONDS.
ELSE.
ROLLBACK WORK.
WRITE: 'No Path Found'.
ENDIF .
CLOSE DATASET filename.
ENDFORM. "write_to_file
Regards,
santosh reddy
2008 Nov 17 9:07 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |