2008 May 09 11:39 AM
Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .
Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .
2008 Jul 24 1:25 PM
Hi,
searching information of XML I find your post.
Post my code source that I have (at the moment) but if you think something that changed , tell me please.
TYPE-POOLS: ixml.
*************************************************************
* macros
*
DEFINE write_xml.
write: / 'XML:', &1 color col_positive inverse.
END-OF-DEFINITION.
************************************************************
TYPES: BEGIN OF xml_line,
data(256) TYPE x,
END OF xml_line.
data: nom_archivo(50) TYPE c,
g_arch_enviar(128) TYPE c.
CONSTANTS: ENCODING(5) VALUE 'UTF-8'.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser type ref to if_ixml_parser,"""
l_istream type ref to if_ixml_istream,"""
l_ostream TYPE REF TO if_ixml_ostream,
l_renderer TYPE REF TO if_ixml_renderer,
l_document TYPE REF TO if_ixml_document,
l_node type ref to if_ixml_node,"""
l_encoding type ref to if_ixml_encoding."""
DATA: l_value TYPE string,"""""""""añado data
l_var_xmldata type string,"""
l_var_xmldata2 type string,"""
l_var_xmldata3 type string,"""
l_var_xmldata4 type string,"""
l_var_cstr type xstring,"""
l_var_ret type i,"""
l_var_dsn type string."""
DATA: l_xml_table TYPE TABLE OF xml_line,
l_xml_size TYPE i,
l_rc TYPE i.
*l_var_xmldata = '<?xml version="1.0" encoding="utf-8"?><C dr="ñ" "></C>'.
l_var_xmldata2 = '<?xml version="1.0" encoding="utf-8"?>'.
l_var_xmldata3 = '<elementFormDefault="qualified"'.
l_var_xmldata4 = 'attributeFormDefault="unqualified""></C>'.
*CONCATENATE l_var_xmldata2 '<elementFormDefault="qualified" "></C>' INTO l_var_xmldata.
CONCATENATE l_var_xmldata2 l_var_xmldata3 l_var_xmldata4 INTO l_var_xmldata.
nom_archivo = 'utf8.xml'.
* Text-001 Ruta de unix a donde enviara el Archivo.
CONCATENATE '/tmp/' nom_archivo INTO g_arch_enviar.
CLASS cl_ixml DEFINITION LOAD.
TYPES: c_line(50) TYPE c.
DATA: xmltab TYPE STANDARD TABLE OF c_line,
node TYPE REF TO if_ixml_node,
xml_line TYPE c_line,
charset TYPE string,
success TYPE c.
DATA: BEGIN OF elemento1 occurs 0,
name(30) VALUE 'Header',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento1.
DATA: BEGIN OF elemento2 occurs 0,
name(30) VALUE 'MasterFiles',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2.
DATA: BEGIN OF elemento3 occurs 0,
name(30) VALUE 'GeneralLedgerEntries',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3.
DATA: BEGIN OF elemento4 occurs 0,
name(30) VALUE 'SourceDocuments',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4.
DATA: BEGIN OF elemento1A occurs 0,
name(30) VALUE 'AuditFileVersion',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento1A.
DATA: BEGIN OF elemento1B occurs 0,
name(30) VALUE 'CompanyID',
elemento1B1(30) VALUE 'ele1B1'.
DATA END OF elemento1B.
DATA: BEGIN OF elemento1C occurs 0,
name(30) VALUE 'TaxRegistrationNumber',
elemento1C1(30) VALUE 'ele1C1'.
DATA END OF elemento1C.
DATA: BEGIN OF elemento1D occurs 0,
name(30) VALUE 'TaxAccountingBasis',
elemento1D1(30) VALUE 'ele1D1'.
DATA END OF elemento1D.
DATA: BEGIN OF elemento1E occurs 0,
name(30) VALUE 'CompanyName',
elemento1E1(30) VALUE 'ele1E1'.
DATA END OF elemento1E.
DATA: BEGIN OF elemento1F occurs 0,
name(30) VALUE 'CompanyAddress',
elemento1F1(30) VALUE 'ele1F1'.
DATA END OF elemento1F.
DATA: BEGIN OF elemento1G occurs 0,
name(30) VALUE 'FiscalYear',
elemento1G1(30) VALUE 'ele1G1'.
DATA END OF elemento1G.
DATA: BEGIN OF elemento1H occurs 0,
name(30) VALUE 'StartDate',
elemento1H1(30) VALUE 'ele1H1'.
DATA END OF elemento1H.
DATA: BEGIN OF elemento1I occurs 0,
name(30) VALUE 'EndDate',
elemento1I1(30) VALUE 'ele1I1'.
DATA END OF elemento1I.
DATA: BEGIN OF elemento1J occurs 0,
name(30) VALUE 'CurrencyCode',
elemento1J1(30) VALUE 'ele1J1'.
DATA END OF elemento1J.
DATA: BEGIN OF elemento1K occurs 0,
name(30) VALUE 'DateCreated',
elemento1K1(30) VALUE 'ele1K1'.
DATA END OF elemento1K.
DATA: BEGIN OF elemento1L occurs 0,
name(30) VALUE 'ProductID',
elemento1L1(30) VALUE 'ele1L1'.
DATA END OF elemento1L.
DATA: BEGIN OF elemento1M occurs 0,
name(30) VALUE 'ProductVersion',
elemento1M1(30) VALUE 'ele1M1'.
DATA END OF elemento1M.
DATA: BEGIN OF elemento1N occurs 0,
name(30) VALUE 'Telephone',
elemento1N1(30) VALUE 'ele1N1'.
DATA END OF elemento1N.
DATA: BEGIN OF elemento1O occurs 0,
name(30) VALUE 'Fax',
elemento1O1(30) VALUE 'ele1O1'.
DATA END OF elemento1O.
DATA: BEGIN OF elemento1P occurs 0,
name(30) VALUE 'Email',
elemento1P1(30) VALUE 'ele1P1'.
DATA END OF elemento1P.
DATA: BEGIN OF elemento1Q occurs 0,
name(30) VALUE 'WebSite',
elemento1Q1(30) VALUE 'ele1Q1'.
DATA END OF elemento1Q.
DATA: BEGIN OF elemento1R occurs 0,
name(30) VALUE 'HeaderComment',
elemento1R1(30) VALUE 'ele1R1'.
DATA END OF elemento1R.
DATA: BEGIN OF elemento2A occurs 0,
name(30) VALUE 'GeneralLedger',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A.
DATA: BEGIN OF elemento2B occurs 0,
name(30) VALUE 'Customer',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B.
DATA: BEGIN OF elemento2C occurs 0,
name(30) VALUE 'Supplier',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C.
DATA: BEGIN OF elemento2D occurs 0,
name(30) VALUE 'Product',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D.
DATA: BEGIN OF elemento2E occurs 0,
name(30) VALUE 'TaxTable',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E.
DATA: BEGIN OF elemento2A1 occurs 0,
name(30) VALUE 'AccountID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A1.
DATA: BEGIN OF elemento2A2 occurs 0,
name(30) VALUE 'AccountDescription',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A2.
DATA: BEGIN OF elemento2B1 occurs 0,
name(30) VALUE 'CustomerID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B1.
DATA: BEGIN OF elemento2B2 occurs 0,
name(30) VALUE 'CustomerTaxID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B2.
DATA BEGIN OF elemento2B3 occurs 0.
INCLUDE STRUCTURE elemento1E.
* name(30) VALUE 'CompanyName',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B3.
DATA: BEGIN OF elemento2B4 occurs 0,
name(30) VALUE 'Contact',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B4.
DATA: BEGIN OF elemento2B5 occurs 0,
name(30) VALUE 'BillingAddress',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B5.
DATA: BEGIN OF elemento2B6 occurs 0,
name(30) VALUE 'ShipToAddress',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B6.
DATA: BEGIN OF elemento2B7 occurs 0.
INCLUDE STRUCTURE elemento1N.
* name(30) VALUE 'Telephone',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B7.
DATA: BEGIN OF elemento2B8 occurs 0.
INCLUDE STRUCTURE elemento1O.
* name(30) VALUE 'Fax',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B8.
DATA: BEGIN OF elemento2B9 occurs 0.
INCLUDE STRUCTURE elemento1P.
* name(30) VALUE 'Email',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B9.
DATA: BEGIN OF elemento2B10 occurs 0.
INCLUDE STRUCTURE elemento1Q.
* name(30) VALUE 'Website',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B10.
DATA: BEGIN OF elemento2C1 occurs 0,
name(30) VALUE 'SupplierID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C1.
DATA: BEGIN OF elemento2C2 occurs 0,
name(30) VALUE 'SupplierTaxID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C2.
DATA: BEGIN OF elemento2C3 occurs 0.
INCLUDE STRUCTURE elemento1E.
* name(30) VALUE 'CompanyName',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C3.
DATA: BEGIN OF elemento2C4 occurs 0.
INCLUDE STRUCTURE elemento2B4.
* name(30) VALUE 'Contact',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C4.
DATA: BEGIN OF elemento2C5 occurs 0.
INCLUDE STRUCTURE elemento2B5.
* name(30) VALUE 'BillingAddress',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C5.
DATA: BEGIN OF elemento2C6 occurs 0.
INCLUDE STRUCTURE elemento2B6.
* name(30) VALUE 'ShipToAddress',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C6.
DATA: BEGIN OF elemento2C7 occurs 0.
INCLUDE STRUCTURE elemento1N.
* name(30) VALUE 'Telephone',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C7.
DATA: BEGIN OF elemento2C8 occurs 0.
INCLUDE STRUCTURE elemento1O.
* name(30) VALUE 'Fax',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C8.
DATA: BEGIN OF elemento2C9 occurs 0.
INCLUDE STRUCTURE elemento1P.
* name(30) VALUE 'Email',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C9.
DATA: BEGIN OF elemento2C10 occurs 0.
INCLUDE STRUCTURE elemento1Q.
* name(30) VALUE 'Website',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C10.
DATA: BEGIN OF elemento2D1 occurs 0,
name(30) VALUE 'ProductType',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D1.
DATA: BEGIN OF elemento2D2 occurs 0,
name(30) VALUE 'ProductCode',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D2.
DATA: BEGIN OF elemento2D3 occurs 0,
name(30) VALUE 'ProductGroup',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D3.
DATA: BEGIN OF elemento2D4 occurs 0,
name(30) VALUE 'ProductDescription',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D4.
DATA: BEGIN OF elemento2D5 occurs 0,
name(30) VALUE 'ProductNumberCode',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D5.
DATA: BEGIN OF elemento2E1 occurs 0,
name(30) VALUE 'TaxType',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1.
DATA: BEGIN OF elemento2E1A occurs 0,
name(30) VALUE 'Description',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1A.
DATA: BEGIN OF elemento2E1B occurs 0,
name(30) VALUE 'TaxCodeDetails',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B.
DATA: BEGIN OF elemento2E1B1 occurs 0,
name(30) VALUE 'TaxCode',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B1.
DATA: BEGIN OF elemento2E1B2 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
* name(30) VALUE 'Description',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B2.
DATA: BEGIN OF elemento2E1B3 occurs 0,
name(30) VALUE 'TaxPercentage',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B3.
DATA: BEGIN OF elemento3A occurs 0,
name(30) VALUE 'NumberOfEntries',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3A.
DATA: BEGIN OF elemento3B occurs 0,
name(30) VALUE 'TotalDebit',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3B.
DATA: BEGIN OF elemento3C occurs 0,
name(30) VALUE 'TotalCredit',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3C.
DATA: BEGIN OF elemento3D occurs 0,
name(30) VALUE 'Journal',
minOccurs(30) VALUE '0',
maxOccurs(30) VALUE 'unbounded',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D.
DATA: BEGIN OF elemento3D1 occurs 0,
name(30) VALUE 'JournalID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D1.
DATA: BEGIN OF elemento3D2 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
* name(30) VALUE 'Description',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D2.
DATA: BEGIN OF elemento3D3 occurs 0,
name(30) VALUE 'Transaction',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3.
DATA: BEGIN OF elemento3D3A occurs 0,
name(30) VALUE 'TransactionID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3A.
DATA: BEGIN OF elemento3D3B occurs 0,
name(30) VALUE 'Period',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3B.
DATA: BEGIN OF elemento3D3C occurs 0,
name(30) VALUE 'TransactionDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3C.
DATA: BEGIN OF elemento3D3D occurs 0,
name(30) VALUE 'SourceID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3D.
DATA: BEGIN OF elemento3D3E occurs 0.
INCLUDE STRUCTURE elemento2E1A.
* name(30) VALUE 'Description',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3E.
DATA: BEGIN OF elemento3D3F occurs 0,
*INCLUDE STRUCTURE elemento2B1.
name(30) VALUE 'GLPostingDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3F.
DATA: BEGIN OF elemento3D3G occurs 0.
INCLUDE STRUCTURE elemento2B1.
* name(30) VALUE 'CustomerID',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3G.
DATA: BEGIN OF elemento3D3H occurs 0,
name(30) VALUE 'SupplierID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3H.
DATA: BEGIN OF elemento3D3I occurs 0,
name(30) VALUE 'Line',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I.
DATA: BEGIN OF elemento3D3I1 occurs 0,
name(30) VALUE 'RecordID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I1.
DATA: BEGIN OF elemento3D3I2 occurs 0.
INCLUDE STRUCTURE elemento2A1.
* name(30) VALUE 'AccountID',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I2.
DATA: BEGIN OF elemento3D3I3 occurs 0,
name(30) VALUE 'SourceDocumentID',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I3.
DATA: BEGIN OF elemento3D3I4 occurs 0,
name(30) VALUE 'SystemEntryDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I4.
DATA: BEGIN OF elemento3D3I5 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
* name(30) VALUE 'Description',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5.
DATA: BEGIN OF elemento3D3I5A occurs 0,
name(30) VALUE 'DebitAmount',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5A.
DATA: BEGIN OF elemento3D3I5B occurs 0,
name(30) VALUE 'CreditAmount',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5B.
****************************************************************
DATA: BEGIN OF elemento4A occurs 0,
name(30) VALUE 'SalesInvoices',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A.
DATA: BEGIN OF elemento4A1 occurs 0.
INCLUDE STRUCTURE elemento3A.
* name(30) VALUE 'NumberOfEntries',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A1.
DATA: BEGIN OF elemento4A2 occurs 0.
INCLUDE STRUCTURE elemento3B.
* name(30) VALUE 'TotalDebit',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A2.
DATA: BEGIN OF elemento4A3 occurs 0.
INCLUDE STRUCTURE elemento3C.
* name(30) VALUE 'TotalCredit',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A3.
DATA: BEGIN OF elemento4A4 occurs 0,
name(30) VALUE 'Invoice',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4.
DATA: BEGIN OF elemento4A4A occurs 0,
name(30) VALUE 'InvoiceNo',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4A.
DATA: BEGIN OF elemento4A4B occurs 0.
INCLUDE STRUCTURE elemento3D3B.
* name(30) VALUE 'Period',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4B.
DATA: BEGIN OF elemento4A4C occurs 0,
name(30) VALUE 'InvoiceDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4C.
DATA: BEGIN OF elemento4A4D occurs 0,
name(30) VALUE 'InvoiceType',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4D.
DATA: BEGIN OF elemento4A4E occurs 0.
INCLUDE STRUCTURE elemento3D3I4.
* name(30) VALUE 'SystemEntryDate',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4E.
DATA: BEGIN OF elemento4A4F occurs 0.
INCLUDE STRUCTURE elemento3D3A.
* name(30) VALUE 'TransactionID',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4F.
DATA: BEGIN OF elemento4A4G occurs 0.
INCLUDE STRUCTURE elemento2B1.
* name(30) VALUE 'CustomerID',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4G.
DATA: BEGIN OF elemento4A4H occurs 0,
name(30) VALUE 'ShipTo',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4H.
DATA: BEGIN OF elemento4A4I occurs 0,
name(30) VALUE 'ShipFrom',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4I.
DATA: BEGIN OF elemento4A4J occurs 0.
INCLUDE STRUCTURE elemento3D3I.
* name(30) VALUE 'Line',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J.
DATA: BEGIN OF elemento4A4K occurs 0,
name(30) VALUE 'DocumentTotals',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K.
DATA: BEGIN OF elemento4A4J1 occurs 0,
name(30) VALUE 'LineNumber',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J1.
DATA: BEGIN OF elemento4A4J2 occurs 0,
name(30) VALUE 'OrderReferences',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2.
DATA: BEGIN OF elemento4A4J3 occurs 0,
name(30) VALUE 'ProductCoder',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J3.
DATA: BEGIN OF elemento4A4J4 occurs 0.
INCLUDE STRUCTURE elemento2D4.
* name(30) VALUE 'ProductDescription',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J4.
DATA: BEGIN OF elemento4A4J5 occurs 0,
name(30) VALUE 'Quantity',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J5.
DATA: BEGIN OF elemento4A4J6 occurs 0,
name(30) VALUE 'UnitOfMeasure',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J6.
DATA: BEGIN OF elemento4A4J7 occurs 0,
name(30) VALUE 'UnitPrice',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J7.
DATA: BEGIN OF elemento4A4J8 occurs 0,
name(30) VALUE 'TaxPointDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J8.
DATA: BEGIN OF elemento4A4J9 occurs 0,
name(30) VALUE 'References',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9.
DATA: BEGIN OF elemento4A4J10 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
* name(30) VALUE 'Description',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J10.
DATA: BEGIN OF elemento4A4J11 occurs 0.
INCLUDE STRUCTURE elemento3D3I5A.
* name(30) VALUE 'DebitAmount',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J11.
DATA: BEGIN OF elemento4A4J12 occurs 0.
INCLUDE STRUCTURE elemento3D3I5B.
* name(30) VALUE 'CreditAmount',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J12.
DATA: BEGIN OF elemento4A4J13 occurs 0,
name(30) VALUE 'Tax',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J13.
DATA: BEGIN OF elemento4A4J14 occurs 0,
name(30) VALUE 'SettlementAmount',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J14.
DATA: BEGIN OF elemento4A4J2A occurs 0,
name(30) VALUE 'OriginatingON',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2A.
DATA: BEGIN OF elemento4A4J2B occurs 0,
name(30) VALUE 'OrderDate',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2B.
DATA: BEGIN OF elemento4A4J9A occurs 0,
name(30) VALUE 'CreditNote',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A.
DATA: BEGIN OF elemento4A4J9A1 occurs 0,
name(30) VALUE 'Reference',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A1.
DATA: BEGIN OF elemento4A4J9A2 occurs 0,
name(30) VALUE 'Reason',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A2.
DATA: BEGIN OF elemento4A4K1 occurs 0,
name(30) VALUE 'TaxPayable',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K1.
DATA: BEGIN OF elemento4A4K2 occurs 0,
name(30) VALUE 'NetTotal',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K2.
DATA: BEGIN OF elemento4A4K3 occurs 0,
name(30) VALUE 'GrossTotal',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K3.
DATA: BEGIN OF elemento4A4K4 occurs 0,
name(30) VALUE 'Currency',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4.
DATA: BEGIN OF elemento4A4K5 occurs 0,
name(30) VALUE 'Settlement',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K5.
DATA: BEGIN OF elemento4A4K4A occurs 0.
INCLUDE STRUCTURE elemento1J.
* name(30) VALUE 'CurrencyCode',
* elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A.
DATA: BEGIN OF elemento4A4K4A1 occurs 0,
name(30) VALUE 'CurrencyDebitAmount',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A1.
DATA: BEGIN OF elemento4A4K4A2 occurs 0,
name(30) VALUE 'CurrencyCreditAmount',
elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A2.
START-OF-SELECTION.
* Creating a ixml factory
l_ixml = cl_ixml=>create( ).
* Create factory object for data streams
l_streamfactory = l_ixml->create_stream_factory( ).
* Create object for input stream
l_istream = l_streamfactory->create_istream_string( string =
l_var_xmldata ).
* Creating the dom object model
l_document = l_ixml->create_document( ).
* Create parser
l_parser = l_ixml->create_parser( document = l_document
stream_factory = l_streamfactory
istream = l_istream ).
* create dom tree by parsing
if l_parser->parse( ) <> 0.
data: j(2).
j = '9'.
* do exception handling here
* return.
endif.
*create output objetct
* create a output stream
l_ostream = l_streamfactory->create_ostream_itable( table = xmltab ).
charset = 'SAP*'.
IF NOT charset IS INITIAL.
* set an document encoding (optional)
l_encoding = l_ixml->create_encoding( character_set = charset
byte_order = 0 ).
success = l_ostream->set_encoding( encoding = l_encoding ).
ENDIF.
l_renderer =
l_ixml->create_renderer( document = l_document
ostream = l_ostream ).
IF l_renderer->render( ) <> 0.
WRITE: / 'ERROR: document rendering'.
EXIT.
ENDIF.
call method l_ostream->close( ).
*Writing string to file
open dataset g_arch_enviar FOR OUTPUT in binary mode.
transfer l_var_cstr to g_arch_enviar.
close dataset g_arch_enviar.
* Fill root node with value AuditFile
DATA: l_element_AuditFile TYPE REF TO if_ixml_element.
l_element_AuditFile = l_document->create_simple_element(
name = 'AuditFile'
parent = l_document ).
DATA: CONCA TYPE STRING.
DATA: elemento type string.
elemento = elemento1-name.
DATA: l_element_Header TYPE REF TO if_ixml_element.
l_element_Header = l_document->create_simple_element(
name = elemento
parent = l_element_AuditFile ).
elemento = elemento1A-name.
DATA: l_element_AuditFileVersion TYPE REF TO if_ixml_element.
l_element_AuditFileVersion = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1B-name.
DATA: l_element_CompanyID TYPE REF TO if_ixml_element.
l_element_CompanyID = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
*The name "L_ELEMENT_TAXREGISTRATIONNUMBER" is longer than the allowed
*30 characters.
*
*elemento = elemento1C-name.
*DATA: l_element_TaxRegistrationNumber TYPE REF TO if_ixml_element.
* l_element_TaxRegistrationNumber = l_document->create_simple_element(
* name = elemento
* parent = l_element_Header ).
elemento = elemento1D-name.
DATA: l_element_TaxAccountingBasis TYPE REF TO if_ixml_element.
l_element_TaxAccountingBasis = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1E-name.
DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
l_element_CompanyName = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1F-name.
DATA: l_element_CompanyAddress TYPE REF TO if_ixml_element.
l_element_CompanyAddress = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1G-name.
DATA: l_element_FiscalYear TYPE REF TO if_ixml_element.
l_element_FiscalYear = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1H-name.
DATA: l_element_StartDate TYPE REF TO if_ixml_element.
l_element_StartDate = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1I-name.
DATA: l_element_EndDate TYPE REF TO if_ixml_element.
l_element_EndDate = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1J-name.
DATA: l_element_CurrencyCode TYPE REF TO if_ixml_element.
l_element_CurrencyCode = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1K-name.
DATA: l_element_DateCreated TYPE REF TO if_ixml_element.
l_element_DateCreated = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1L-name.
DATA: l_element_ProductID TYPE REF TO if_ixml_element.
l_element_ProductID = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1M-name.
DATA: l_element_ProductVersion TYPE REF TO if_ixml_element.
l_element_ProductVersion = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1N-name.
DATA: l_element_Telephone TYPE REF TO if_ixml_element.
l_element_Telephone = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1O-name.
DATA: l_element_Fax TYPE REF TO if_ixml_element.
l_element_Fax = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1P-name.
DATA: l_element_Email TYPE REF TO if_ixml_element.
l_element_Email = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1Q-name.
DATA: l_element_WebSite TYPE REF TO if_ixml_element.
l_element_WebSite = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento1R-name.
DATA: l_element_HeaderComment TYPE REF TO if_ixml_element.
l_element_HeaderComment = l_document->create_simple_element(
name = elemento
parent = l_element_Header ).
elemento = elemento2-name.
DATA: l_element_MasterFiles TYPE REF TO if_ixml_element.
l_element_MasterFiles = l_document->create_simple_element(
name = elemento
parent = l_element_AuditFile ).
elemento = elemento2A-name.
DATA: l_element_GeneralLedger TYPE REF TO if_ixml_element.
l_element_GeneralLedger = l_document->create_simple_element(
name = elemento
parent = l_element_MasterFiles ).
elemento = elemento2B-name.
DATA: l_element_Customer TYPE REF TO if_ixml_element.
l_element_Customer = l_document->create_simple_element(
name = elemento
parent = l_element_MasterFiles ).
elemento = elemento2C-name.
DATA: l_element_Supplier TYPE REF TO if_ixml_element.
l_element_Supplier = l_document->create_simple_element(
name = elemento
parent = l_element_MasterFiles ).
elemento = elemento2D-name.
DATA: l_element_Product TYPE REF TO if_ixml_element.
l_element_Product = l_document->create_simple_element(
name = elemento
parent = l_element_MasterFiles ).
elemento = elemento2E-name.
DATA: l_element_TaxTable TYPE REF TO if_ixml_element.
l_element_TaxTable = l_document->create_simple_element(
name = elemento
parent = l_element_MasterFiles ).
elemento = elemento2A1-name.
DATA: l_element_AccountID TYPE REF TO if_ixml_element.
l_element_AccountID = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedger ).
elemento = elemento2A2-name.
DATA: l_element_AccountDescription TYPE REF TO if_ixml_element.
l_element_AccountDescription = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedger ).
elemento = elemento2B1-name.
DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
l_element_CustomerID = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
elemento = elemento2B2-name.
DATA: l_element_CustomerTaxID TYPE REF TO if_ixml_element.
l_element_CustomerTaxID = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
*elemento = elemento2B3-name.
elemento = elemento1E-name.
*DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
l_element_CompanyName = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
elemento = elemento2B4-name.
DATA: l_element_Contact TYPE REF TO if_ixml_element.
l_element_Contact = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
elemento = elemento2B5-name.
DATA: l_element_BillingAddress TYPE REF TO if_ixml_element.
l_element_BillingAddress = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
elemento = elemento2B6-name.
DATA: l_element_ShipToAddress TYPE REF TO if_ixml_element.
l_element_ShipToAddress = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
*elemento = elemento2B7-name.
elemento = elemento1N-name.
*DATA: l_element_Telephone TYPE REF TO if_ixml_element.
l_element_Telephone = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
*elemento = elemento2B8-name.
elemento = elemento1O-name.
*DATA: l_element_Fax TYPE REF TO if_ixml_element.
l_element_Fax = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
*elemento = elemento2B9-name.
elemento = elemento1P-name.
*DATA: l_element_Email TYPE REF TO if_ixml_element.
l_element_Email = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
*elemento = elemento2B10-name.
elemento = elemento1Q-name.
*DATA: l_element_Website TYPE REF TO if_ixml_element.
l_element_Website = l_document->create_simple_element(
name = elemento
parent = l_element_Customer ).
elemento = elemento2C1-name.
DATA: l_element_SupplierID TYPE REF TO if_ixml_element.
l_element_SupplierID = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento2C2-name.
DATA: l_element_SupplierTaxID TYPE REF TO if_ixml_element.
l_element_SupplierTaxID = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento1E-name.
*DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
l_element_CompanyName = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento2B4-name.
*DATA: l_element_Contact TYPE REF TO if_ixml_element.
l_element_Contact = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento2B5-name.
*DATA: l_element_BillingAddress TYPE REF TO if_ixml_element.
l_element_BillingAddress = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento2B6-name.
*DATA: l_element_ShipToAddress TYPE REF TO if_ixml_element.
l_element_ShipToAddress = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento1N-name.
*DATA: l_element_Telephone TYPE REF TO if_ixml_element.
l_element_Telephone = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento1O-name.
*DATA: l_element_Fax TYPE REF TO if_ixml_element.
l_element_Fax = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento1P-name.
*DATA: l_element_Email TYPE REF TO if_ixml_element.
l_element_Email = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento1Q-name.
*DATA: l_element_Website TYPE REF TO if_ixml_element.
l_element_Website = l_document->create_simple_element(
name = elemento
parent = l_element_Supplier ).
elemento = elemento2D1-name.
DATA: l_element_ProductType TYPE REF TO if_ixml_element.
l_element_ProductType = l_document->create_simple_element(
name = elemento
parent = l_element_Product ).
elemento = elemento2D2-name.
DATA: l_element_ProductCode TYPE REF TO if_ixml_element.
l_element_ProductCode = l_document->create_simple_element(
name = elemento
parent = l_element_Product ).
elemento = elemento2D3-name.
DATA: l_element_ProductGroup TYPE REF TO if_ixml_element.
l_element_ProductGroup = l_document->create_simple_element(
name = elemento
parent = l_element_Product ).
elemento = elemento2D4-name.
DATA: l_element_ProductDescription TYPE REF TO if_ixml_element.
l_element_ProductDescription = l_document->create_simple_element(
name = elemento
parent = l_element_Product ).
elemento = elemento2D5-name.
DATA: l_element_ProductNumberCode TYPE REF TO if_ixml_element.
l_element_ProductNumberCode = l_document->create_simple_element(
name = elemento
parent = l_element_Product ).
elemento = elemento2E1-name.
DATA: l_element_TaxType TYPE REF TO if_ixml_element.
l_element_TaxType = l_document->create_simple_element(
name = elemento
parent = l_element_TaxTable ).
elemento = elemento2E1A-name.
DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_TaxType ).
elemento = elemento2E1B-name.
DATA: l_element_TaxCodeDetails TYPE REF TO if_ixml_element.
l_element_TaxCodeDetails = l_document->create_simple_element(
name = elemento
parent = l_element_TaxType ).
elemento = elemento2E1B1-name.
DATA: l_element_TaxCode TYPE REF TO if_ixml_element.
l_element_TaxCode = l_document->create_simple_element(
name = elemento
parent = l_element_TaxCodeDetails ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_TaxCodeDetails ).
elemento = elemento2E1B3-name.
DATA: l_element_TaxPercentage TYPE REF TO if_ixml_element.
l_element_TaxPercentage = l_document->create_simple_element(
name = elemento
parent = l_element_TaxCodeDetails ).
elemento = elemento3-name.
DATA: l_element_GeneralLedgerEntries TYPE REF TO if_ixml_element.
l_element_GeneralLedgerEntries = l_document->create_simple_element(
name = elemento
parent = l_element_AuditFile ).
elemento = elemento3A-name.
DATA: l_element_NumberOfEntries TYPE REF TO if_ixml_element.
l_element_NumberOfEntries = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedgerEntries ).
elemento = elemento3B-name.
DATA: l_element_TotalDebit TYPE REF TO if_ixml_element.
l_element_TotalDebit = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedgerEntries ).
elemento = elemento3C-name.
DATA: l_element_TotalCredit TYPE REF TO if_ixml_element.
l_element_TotalCredit = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedgerEntries ).
elemento = elemento3D-name.
*****if elemento3D-minOccurs NE ''.
***** elemento1 = ' minOccurs = '.
***** elemento2 = elemento3D-minOccurs.
***** CONCATENATE elemento elemento1 elemento2 INTO elemento.
*****endif.
*data: eleref(30),
*elemento.
*eleref = 'ref = '.
*CONCATENATE eleref elemento INTO elemento.
DATA: l_element_Journal TYPE REF TO if_ixml_element.
l_element_Journal = l_document->create_simple_element(
name = elemento
parent = l_element_GeneralLedgerEntries ).
elemento = elemento3D1-name.
DATA: l_element_JournalID TYPE REF TO if_ixml_element.
l_element_JournalID = l_document->create_simple_element(
name = elemento
parent = l_element_Journal ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_Journal ).
elemento = elemento3D3-name.
DATA: l_element_Transaction TYPE REF TO if_ixml_element.
l_element_Transaction = l_document->create_simple_element(
name = elemento
parent = l_element_Journal ).
elemento = elemento3D3A-name.
DATA: l_element_TransactionID TYPE REF TO if_ixml_element.
l_element_TransactionID = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3B-name.
DATA: l_element_Period TYPE REF TO if_ixml_element.
l_element_Period = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3C-name.
DATA: l_element_TransactionDate TYPE REF TO if_ixml_element.
l_element_TransactionDate = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3D-name.
DATA: l_element_SourceID TYPE REF TO if_ixml_element.
l_element_SourceID = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3F-name.
DATA: l_element_GLPostingDate TYPE REF TO if_ixml_element.
l_element_GLPostingDate = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento2B1-name.
*DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
l_element_CustomerID = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento2C1-name.
*DATA: l_element_SupplierID TYPE REF TO if_ixml_element.
l_element_SupplierID = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3I-name.
DATA: l_element_Line TYPE REF TO if_ixml_element.
l_element_Line = l_document->create_simple_element(
name = elemento
parent = l_element_Transaction ).
elemento = elemento3D3I1-name.
DATA: l_element_RecordID TYPE REF TO if_ixml_element.
l_element_RecordID = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento2A1-name.
*DATA: l_element_AccountID TYPE REF TO if_ixml_element.
l_element_AccountID = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento3D3I3-name.
DATA: l_element_SourceDocumentID TYPE REF TO if_ixml_element.
l_element_SourceDocumentID = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento3D3I4-name.
DATA: l_element_SystemEntryDate TYPE REF TO if_ixml_element.
l_element_SystemEntryDate = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento3D3I5A-name.
DATA: l_element_DebitAmount TYPE REF TO if_ixml_element.
l_element_DebitAmount = l_document->create_simple_element(
name = elemento
parent = l_element_Description ).
elemento = elemento3D3I5B-name.
DATA: l_element_CreditAmount TYPE REF TO if_ixml_element.
l_element_CreditAmount = l_document->create_simple_element(
name = elemento
parent = l_element_Description ).
elemento = elemento4-name.
DATA: l_element_SourceDocuments TYPE REF TO if_ixml_element.
l_element_SourceDocuments = l_document->create_simple_element(
name = elemento
parent = l_element_AuditFile ).
elemento = elemento4A-name.
DATA: l_element_SalesInvoices TYPE REF TO if_ixml_element.
l_element_SalesInvoices = l_document->create_simple_element(
name = elemento
parent = l_element_SourceDocuments ).
elemento = elemento3A-name.
*DATA: l_element_NumberOfEntries TYPE REF TO if_ixml_element.
l_element_NumberOfEntries = l_document->create_simple_element(
name = elemento
parent = l_element_SalesInvoices ).
elemento = elemento3B-name.
*DATA: l_element_TotalDebit TYPE REF TO if_ixml_element.
l_element_TotalDebit = l_document->create_simple_element(
name = elemento
parent = l_element_SalesInvoices ).
elemento = elemento3C-name.
*DATA: l_element_TotalCredit TYPE REF TO if_ixml_element.
l_element_TotalCredit = l_document->create_simple_element(
name = elemento
parent = l_element_SalesInvoices ).
elemento = elemento4A4-name.
DATA: l_element_Invoice TYPE REF TO if_ixml_element.
l_element_Invoice = l_document->create_simple_element(
name = elemento
parent = l_element_SalesInvoices ).
elemento = elemento4A4A-name.
DATA: l_element_InvoiceNo TYPE REF TO if_ixml_element.
l_element_InvoiceNo = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento3D3B-name.
*DATA: l_element_Period TYPE REF TO if_ixml_element.
l_element_Period = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4C-name.
DATA: l_element_InvoiceDate TYPE REF TO if_ixml_element.
l_element_InvoiceDate = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4D-name.
DATA: l_element_InvoiceType TYPE REF TO if_ixml_element.
l_element_InvoiceType = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento3D3I4-name.
*DATA: l_element_SystemEntryDate TYPE REF TO if_ixml_element.
l_element_SystemEntryDate = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento3D3A-name.
*DATA: l_element_TransactionID TYPE REF TO if_ixml_element.
l_element_TransactionID = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento2B1-name.
*DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
l_element_CustomerID = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4H-name.
DATA: l_element_ShipTo TYPE REF TO if_ixml_element.
l_element_ShipTo = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4I-name.
DATA: l_element_ShipFrom TYPE REF TO if_ixml_element.
l_element_ShipFrom = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento3D3I-name.
*DATA: l_element_Line TYPE REF TO if_ixml_element.
l_element_Line = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4K-name.
DATA: l_element_DocumentTotals TYPE REF TO if_ixml_element.
l_element_DocumentTotals = l_document->create_simple_element(
name = elemento
parent = l_element_Invoice ).
elemento = elemento4A4J1-name.
DATA: l_element_LineNumber TYPE REF TO if_ixml_element.
l_element_LineNumber = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J2-name.
DATA: l_element_OrderReferences TYPE REF TO if_ixml_element.
l_element_OrderReferences = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J3-name.
DATA: l_element_ProductCoder TYPE REF TO if_ixml_element.
l_element_ProductCode = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento2D4-name.
*DATA: l_element_ProductDescription TYPE REF TO if_ixml_element.
l_element_ProductDescription = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J5-name.
DATA: l_element_Quantity TYPE REF TO if_ixml_element.
l_element_Quantity = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J6-name.
DATA: l_element_UnitOfMeasure TYPE REF TO if_ixml_element.
l_element_UnitOfMeasure = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J7-name.
DATA: l_element_UnitPrice TYPE REF TO if_ixml_element.
l_element_UnitPrice = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J8-name.
DATA: l_element_TaxPointDate TYPE REF TO if_ixml_element.
l_element_TaxPointDate = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J9-name.
DATA: l_element_References TYPE REF TO if_ixml_element.
l_element_References = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
l_element_Description = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento3D3I5A-name.
*DATA: l_element_DebitAmount TYPE REF TO if_ixml_element.
l_element_DebitAmount = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento3D3I5B-name.
*DATA: l_element_CreditAmount TYPE REF TO if_ixml_element.
l_element_CreditAmount = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J13-name.
DATA: l_element_Tax TYPE REF TO if_ixml_element.
l_element_Tax = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J14-name.
DATA: l_element_SettlementAmount TYPE REF TO if_ixml_element.
l_element_SettlementAmount = l_document->create_simple_element(
name = elemento
parent = l_element_Line ).
elemento = elemento4A4J2A-name.
DATA: l_element_OriginatingON TYPE REF TO if_ixml_element.
l_element_OriginatingON = l_document->create_simple_element(
name = elemento
parent = l_element_OrderReferences ).
elemento = elemento4A4J2B-name.
DATA: l_element_OrderDate TYPE REF TO if_ixml_element.
l_element_OrderDate = l_document->create_simple_element(
name = elemento
parent = l_element_OrderReferences ).
elemento = elemento4A4J9A-name.
DATA: l_element_CreditNote TYPE REF TO if_ixml_element.
l_element_CreditNote = l_document->create_simple_element(
name = elemento
parent = l_element_References ).
elemento = elemento4A4J9A1-name.
DATA: l_element_Reference TYPE REF TO if_ixml_element.
l_element_Reference = l_document->create_simple_element(
name = elemento
parent = l_element_CreditNote ).
elemento = elemento4A4J9A2-name.
DATA: l_element_Reason TYPE REF TO if_ixml_element.
l_element_Reason = l_document->create_simple_element(
name = elemento
parent = l_element_CreditNote ).
elemento = elemento4A4K1-name.
DATA: l_element_TaxPayable TYPE REF TO if_ixml_element.
l_element_TaxPayable = l_document->create_simple_element(
name = elemento
parent = l_element_DocumentTotals ).
elemento = elemento4A4K2-name.
DATA: l_element_NetTotal TYPE REF TO if_ixml_element.
l_element_NetTotal = l_document->create_simple_element(
name = elemento
parent = l_element_DocumentTotals ).
elemento = elemento4A4K3-name.
DATA: l_element_GrossTotal TYPE REF TO if_ixml_element.
l_element_GrossTotal = l_document->create_simple_element(
name = elemento
parent = l_element_DocumentTotals ).
elemento = elemento4A4K4-name.
DATA: l_element_Currency TYPE REF TO if_ixml_element.
l_element_Currency = l_document->create_simple_element(
name = elemento
parent = l_element_DocumentTotals ).
elemento = elemento4A4K5-name.
DATA: l_element_Settlement TYPE REF TO if_ixml_element.
l_element_Settlement = l_document->create_simple_element(
name = elemento
parent = l_element_DocumentTotals ).
elemento = elemento1J-name.
*DATA: l_element_CurrencyCode TYPE REF TO if_ixml_element.
l_element_CurrencyCode = l_document->create_simple_element(
name = elemento
parent = l_element_Currency ).
elemento = elemento4A4K4A1-name.
DATA: l_element_CurrencyDebitAmount TYPE REF TO if_ixml_element.
l_element_CurrencyDebitAmount = l_document->create_simple_element(
name = elemento
parent = l_element_CurrencyCode ).
elemento = elemento4A4K4A2-name.
DATA: l_element_CurrencyCreditAmount TYPE REF TO if_ixml_element.
l_element_CurrencyCreditAmount = l_document->create_simple_element(
name = elemento
parent = l_element_CurrencyCode ).
* 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 = 'E: empAuditFile2.xml' "cambio E
filename = 'C:mioAuditFile21.xml' "cambio C
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.
*inicio prueba
*Process the document
perform process_dom using l_document.
*WHEN
*fin prueba
*&--------------------------------------------------------------------
**& Form process_dom
*&--------------------------------------------------------------------
form process_dom using document type ref to if_ixml_document.
data: node type ref to if_ixml_node,
iterator type ref to if_ixml_node_iterator,
nodemap type ref to if_ixml_named_node_map,
attr type ref to if_ixml_node,
name type string,
prefix type string,
value type string,
indent type i,
count type i,
index type i.
data: name2 type string,
name_root type string,
node_parent type ref to if_ixml_node,
node_root type ref to if_ixml_node,
num_children type i.
node ?= document.
check not node is initial.
uline.
write: /.
write: /' DOM-TREE'.
write: /.
if node is initial. exit. endif.
*create a node iterator
iterator = node->create_iterator( ).
*get current node
node = iterator->get_next( ).
*loop over all nodes
while not node is initial.
indent = node->get_height( ) * 2.
indent = indent + 20.
num_children = node->num_children( ).
case node->get_type( ).
when if_ixml_node=>co_node_element.
*element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
node_root = node->get_root( ).
name_root = node_root->get_name( ).
write: / 'ELEMENT :'.
write: at indent name color col_positive inverse.
write: 'NUM_CHILDREN:', num_children.
write: 'ROOT:', name_root.
node_parent = node->get_parent( ).
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.
if not nodemap is initial.
*attributes
count = nodemap->get_length( ).
do count times.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
write: / 'ATTRIBUTE:'.
write: at indent name color col_heading inverse, '=',
value color col_total inverse.
enddo.
endif.
when if_ixml_node=>co_node_text or
if_ixml_node=>co_node_cdata_section.
*text node
value = node->get_value( ).
write: / 'VALUE :'.
*mjprocha
node_parent = node->get_parent( ).
write: at indent value color col_group inverse.
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.
endcase.
*advance to next node
node = iterator->get_next( ).
endwhile.
endform. "process_dom
*---------------------------------------------------------------------*
* FORM print_tree *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM print_dom USING node TYPE REF TO if_ixml_node.
DATA: iterator TYPE REF TO if_ixml_node_iterator,
nodemap TYPE REF TO if_ixml_named_node_map,
attr TYPE REF TO if_ixml_node,
name TYPE string,
prefix TYPE string,
value TYPE string,
indent TYPE i,
count TYPE i,
index TYPE i.
CHECK NOT node IS INITIAL.
ULINE.
WRITE: /.
WRITE: /' DOM-TREE'.
WRITE: /.
IF node IS INITIAL. EXIT. ENDIF.
* create a node iterator
iterator = node->create_iterator( ).
* get current node
node = iterator->get_next( ).
* loop over all nodes
WHILE NOT node IS INITIAL.
indent = node->get_height( ) * 2.
indent = indent + 20.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
* element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WRITE: / 'ELEMENT :'.
WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
IF NOT nodemap IS INITIAL.
* attributes
count = nodemap->get_length( ).
DO count TIMES.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace( ).
value = attr->get_value( ).
WRITE: / 'ATTRIBUTE:'.
WRITE: AT indent name COLOR COL_HEADING INVERSE, '=',
value COLOR COL_TOTAL INVERSE.
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text.
* text node
value = node->get_value( ).
WRITE: / 'TEXT :'.
WRITE: AT indent value COLOR COL_GROUP INVERSE.
ENDCASE.
* advance to next node
node = iterator->get_next( ).
ENDWHILE.
ENDFORM. "traverse_domI hope useful for you.
Cordial greetings.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |