Node function exists - Behaviour

Hi ,
I want to use the simple function "exists" for checking if the Node exists. But when input is null the output is also null.. My expectation would have been that if the input is null output of the function would be false...
What am i missing ?
-Mahesh

Hi,
You can also use that logic in checking for a node.
Also do i get maptodefault to return a boolean and check for it in an IF statement ?
Yes, you can use it to automatically set a value to false if the node is not existing, however, the other values will not be of boolean. A complete mapping could be like this
node --> mapWithDefault: false --> fixValues --> your if logic
fix values should be:
Default value: true
key: false
value: false
Also if its a bug then is there a known SAP note ? ( I am on SAP pi 7.1 EHP1)
I just tested it, it is not a bug. example,
Root
Parent (0..unbounded)
--> child (0..1)
If you use mapWithDefault to the child, but the parent is not existing. It will return a null. But if you use mapWithDefault to the parent, it will return a false if the parent is not existing. This is, of course, using normal contexts.
Hope this helps,
Mark
Edited by: Mark Dihiansan on Mar 2, 2011 3:18 AM

Similar Messages

  • Advanced functions,UDF's and node function

    Dear all,
    Can you kindly let me know about Advanced functions,UDF's and node function.Differences and Uses.
    Also Let me know about the advantages,Disadvantages of Graphical,XSLT,Java,ABAP and ABAP XSLT mappings.
    Thanks,
    Srini

    Hi,
    The term Mapping means:
    1. The transformation process, and/or
    2. The transformation rules.
    Independently from XI, you can distinguish two different mappings
    • Structure mappings transform entire message structures.
    • Value mappings transform values within messages.
    Mapping Programs to Map Messages :
    Message Mapping
    Designed by using the graphical mapping editor of Integration Builder
    Result: Generated Java Code.
    Imported Archives
    Import externally defined mapping programs into repository
    Java mapping:
    Implemented by using a specific interface
    XSLT mapping:
    Runtime supports XSLT processor
    Java methods can be called from within a Style Sheet
    ABAP Mapping
    You can execute mapping programs in a sequence
    The exchange infrastructure supports three types of mappings:
    Message mappings that can be designed using a graphical mapping editor in the Integration Builder. As a result, Java code is generated from the graphical representation that is compiled before it can be executed on the integration server.
    You can implement your own Java mapping by implementing a specific interface of the mapping API.
    You can implement an XSLT mapping
    For the latter two, there is no tool support in XI. It is expected that they are developed using external development tools. To make them available for the integration server, they have to be imported into the integration repository as JAR
    files before (JAR: Java Archives).
    Developers can even decide to combine the different mapping technologies:
    Message mappings, XSLT mappings and Java mappings can be combined in a sequence by means of an interface mapping.
    XSLT mappings can use java functions
    Message mappings support user-defined functions that can use imported java packages of the same namespace.
    In SAP XI, there is 3 types of mappings. Namely
    XSLT Mapping
    Java Mapping
    ABAP Mapping
    Here is the details of each mapping.
    XSLT Mappings (ABAP Engine)
    Interface descriptions are in the form of XML documents. XSL Transformation (XSLT) is a member of the XML family of languages. It describes how an XML structure is transformed into another XML structure.
    Customers can develop an XSLT mapping by using the Transformation Editor of the ABAP Workbench. Such XSLT mappings are executed at runtime on the ABAP Engine of the Integration Server.
    To simplify matters, this section refers to XSLT mappings of the ABAP Engine as transformation programs to differentiate them from XSLT mappings from imported archives that are executed on the J2EE Engine.
    Features
    XPath and <xsl:include>
    You can define mappings using XSLT together with XPath. XPath is also a specification of the XML family. Using XPath you can address any node in an XML document. XSLT implements XPath expressions to select substructures of an XML document. Using templates in XSLT you can define the mapping rules for the selected substructures.
    You can use the XSLT tags <xsl:include> and <xsl:import> to include predefined templates for substructures in a complete mapping definition. In this way, you can reuse mappings for data types.
    Java Mapping
    You can implement mapping programs in Java. To process XML documents, use Java API for XML Processing (JAXP), for example. The JAXP supports the Document Object Model (DOM) and the Simple API for XML (SAX). This gives you great flexibility for mapping definitions with Java.
    Implementation Considerations
    Java mapping programs are not permitted to be stateful. You are therefore not permitted to perform actions such as writing data to a database table during a Java mapping. The Integration Server cannot track such side effects. Therefore, if an attempt is made to resend a message that has not been received by the receiver, the data may inadvertently be written to the database twice in a Java mapping.
    If you use JRE classes in your Java mapping programs then the same program restrictions apply as for Enterprise Java Beans (EJBs). For a detailed description of these restrictions, see the relevant EJB specification. It is important that you also refer to the information under Scope of Functions in Runtime Environment (Java Mappings).
    The runtime environment for Java mappings has an mapping API. To use Java mapping, you must define a Java class that implements the Java interface com.sap.aii.mapping.api.StreamTransformation. This interface has two methods:
    &#9679; public void execute(java.io.InputStream in, java.io.OutputStream out)
    At runtime, the Integration Engine calls this method to execute a mapping. This method contains an input stream for the source document and an output stream for the target document as parameters. These streams are usually XML documents. You can import the substructures to be converted from the input stream and output the converted target document in the output stream.
    &#9679; public void setParameter(java.util.Map param)
    The Integration Engine transfers parameters to the mapping program with this method. It evaluates these parameters at runtime in the method execute(). This enables you to control the process flow of the mapping.
    The transferred object that implements the Java interface java.util.Map contains seven key/value pairs as parameters. These correspond to corresponding fields in the message header. Apart from the MAPPING_TRACE constant, the value objects are of type java.lang.String. The key objects are defined in the class com.sap.aii.mapping.api.StreamTransformationConstants
    ABAP Mappings
    ABAP mappings are mapping programs in ABAP objects that customers can implement using the ABAP Workbench.
    Features
    An ABAP mapping comprises an ABAP class that implements the interface IF_MAPPING in the package SAI_MAPPING.
    Exception: CX_MAPPING_FAULT
    Applications can decide themselves in the method EXECUTE how to import and change the source XML document. If you want to use the XSLT processor of SAP Web AS, you can use the ABAP Workbench to develop a stylesheet directly (see XSLT Mappings (ABAP Engine)) rather than using ABAP mappings.
    Runtime Constants
    In ABAP mapping you can read access message header fields. To do this, an object of type IF_MAPPING_PARAM is transferred to the EXECUTE method. The interface has constants for the names of the available parameters and a method GET, which returns the respective value for the parameter name. The constants are the same as in Java mappings, although the constant MAPPING_TRACE does not exist for ABAP mappings. Instead, the trace object is transferred directly using the parameter TRACE of the method IF_MAPPING~EXECUTE
    Example: Accessing a Runtime Constant
    Method IF_MAPPING~EXECUTE.
    Get mapping constant SENDER_SERVICE
    data: l_sender_service type string.
    l_sender_service = param->get( IF_MAPPING_PARAM=>SENDER_SERVICE ).
    ENDMETHOD.
    These r excellent websites which contain PPT & PDF documents on mapping:
    Excellent PDF Document on Mapping
    http://help.sap.com/bp_bpmv130/Documentation/Operation/MappingXI30.pdf
    Mapping Development with the ABAP Workbench
    http://help.sap.com/saphelp_nw04/helpdata/en/10/5abb2d9df242f6a62e22e027a6c382/content.htm
    ABAP Mappings
    http://help.sap.com/saphelp_nw04/helpdata/en/ba/e18b1a0fc14f1faf884ae50cece51b/content.htm
    how to create a flat file out of an IDoc-XML by means of an ABAP mapping program and the J2EE File Adapter.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/46759682-0401-0010-1791-bd1972bc0b8a
    How to Use ABAP Mapping in XI 3.0
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e3ead790-0201-0010-64bb-9e4d67a466b4
    Hope this will help you, and don't forget to close this thread.
    Regards
    Aashish Sinha
    PS : reward points if helpful

  • Where is the node function:SOAP Lookup

    Hi:
      I can see the SOAP Lookup exists in SAP BASIS 7.11 when i define parameter in Operation Mapping.
      But in Message Mapping,i can just find node functions of JDBC Lookup and RFC Lookup without SOAP Lookup,it can only be
      used in UDF?
    regards
    Yu Ming

    I think you are right, I could not find node function for SOAP lookup in PI 7.1.
    I recently need to do SOAP lookup, so need to go for UDF only to create SOAP req message and parsing SOAP response and mapped to target field.
    Divyesh Vasani

  • Node functions in real time scenario

    can any one tell me  where node functions used in realtime explain with examples?
    thanx&regards
    naren

    Hey,
    1. remove context:
    You use removeContexts () to delete all the top contexts for an element. This removes all top hierarchy levels, so that all elements of the target queue are assigned to a root element of the source queue.
    Advanced user-defined functions can import either just one context into the input arrays, or complete queues. Make your selection by selecting or deselecting the Save Entire Queue in Cache checkbox in the function editor.
    2. split by value:
    The SplitByValue() function is the counterpart to removeContexts(): Instead of deleting a context, you can insert a context change in the source value queue. You then receive this element for each inserted context change instead of a top node element. However, for this to be possible, the top node source field must be assigned a top node target field and minOccurs must be >0. You can insert a context change in the queue after each value, after each change to the value, or after each tag without a value.
    3. collapse context:
    Using collapseContexts() puts the first values of all contexts into a context. Empty contexts are replaced with an empty string:
    This can be useful if an upper-level node is to be created each time a lower-level node exists, for example. The function is useful in combination with the SplitByValue function.
    4. Use one as many
    You require the function useOneAsMany() if a field that only occurs once needs to be replicated as often as another field occurs in the outbound message so that the fields can be written to the target structure in pairs as a record.
    http://help.sap.com/saphelp_nw04/helpdata/en/2c/2d8c4024d26e1de10000000a1550b0/frameset.htm
    5. Map with default
    6.copyValue
    You use CopyValue() for a frequently occurring element to copy the value of a position in the source structure and assign it to a target field. The value is copied each time the target field occurs in the target structure. However, it is copied a maximum of maxOccurs times
    7.createIf
    You use createIf() to create a tag in the target structure depending on a condition.
    8.exists
    You use this function to determine whether a particular source field exists in the XML instance to be processed. If it does, exists() returns the value true, otherwise it returns the value false.
    9.Use
    You use this function if you need to synchronize two queues of equal length with reference to their context change. The mapping runtime takes the values from the first queue, and the context change from the second queue. If the two inbound queues do not have the same number of values, the mapping runtime triggers an exception.
    Link for Node function.
    /people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool
    Example:
    removeContext:
    We use remove context to remove the context of a queue
    A ->removeContext-> A
    B B
    C C
    here each line under an alphabet denotes context change.
    One thing about context change is it will not show you null values coming in input.
    A ->removeContext-> A
    C
    C
    in above example -- represents only context change no value in this place(null).
    Collapscontext :
    It works very much same way of removecontext but it also considers null values and gives [] for null values (if Context of Field is on its Preceeding parent otherwice it will work as remove context)
    A ->CollapsContext-> A
    [] (Blank value)
    C C
    One more chane is if there are multiple values in a context then it will only select first value from that queue
    A ->CollapsContext-> A
    D B
    B C
    C
    As you can see in above example A & D falls under one context hence D is Removed
    Split ByValue :
    Used to Change the Context of Input
    it has three options in it
    1)each value
    2)value change
    3)emptyValue
    The link given by Rohit is Self Explanatry for this .
    FormateByExample :
    it changes the Context of input1 as per the Context of Second input but the number of values in both the input must be same .
    eg.
    Input1 Input2 ->FormateByExample-> Out
    A P A
    B Q B
    C R C
    As you can see Context of input1 is Changed as per input 2
    Sorry Guest Seems To Be Some Problem With Formating
    Give me you Email ID Will Send You in Proper Formate
    reward points if useful.
    regards,
          Milan

  • SAP PI Node functions

    Hi
    Can anyone send the link that tells with the examples about the node functions in SAP PI
    Thanks
    RP

    a) Remove Contexts: - remove all higher level contents of the source level message in order to map with the target message field. So you can get the node contexts removal.
    b) Split by value: - Insert Context change for an element split by value is some as counter part of remove context. Here instead of delivering the context you can insert a context change in the source value queue.
    c) Collapse contexts: - Copies first values of the all contexts to one context empty context are replaced by empty string.
    d) Copy Value: - How many ever times I occur I am copied just once". This is not a node function but I am explaining it as it is used very frequently in real-time. Let us take an instance of material group, which can occur as many times as the item node. But since we are mapping it to the header in the target node I just want to copy the first occurrence of material group and map it to the header node. CopyValue exactly does that.
    e) Create if: - It will create a target node or element based on some condition.
    f) Exists: - Function to determine whether a particular source field exists in instance to be processed. If it does it gives true or else false.
    g) Use one as many: if a field that only occurs once needs to be replicated as often as another field occurs in the outbound message so that the fields can be written to the target structure in pairs as a record.
    h) Replace value: - Replace the value I with the value that you desired in the dialogue for function properties.
    i) Sort: - Sorts all values of the multiply occurring inbound field with in the existing or set context.
    Regards...
    Saathi

  • Call library function node: function not found in library

    I'm using Labview 6.1 and Windows XP.  I am trying to open some code, but it opens up with a broken arrow.  The error is Call Library Function Node:function not found in library.  Tried to configure the node, but no change.  Moved the DLLs to various directories (keeping them together) but again no change. 
    This code has been compiled and is working fine.  I'm just trying to run the source code to make some modifications.  Any suggestions? 
    Thanks
    CarlosV

    Thanks for the suggestions.  Tried it but had the same results.  The library I'm using is hpe1413_32.dll. 
    One thing I forgot to mention....doing a configure on the node, it comes up with the library: hpvscp32.dll and the function: hpe1413_error_message
    The function doesn't exist in the library.  So I set the path to hpe1413_32.dll which does contain the function. 
    After closing the configuration window and opening it up again, the library shown is hpvscp32.dll
    From what I can tell, there are three libraries involved:hpe1413_32.dll, hpe141332v.dll, and hpvscp32.dll
    Thanks again.
    Carlos

  • Create a new Node in existing xml file using CL_IXML

    Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .

    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_eleme

  • Is UDF required for this?!! or Can we manage with Node Functions?!!!

    HI Gurus,
    I have a requirement like below desc, Is UDF required for this?!! or Can we manage with Node Functions?!!!
    Source File: ( File )
    a) PO_TYPE
    b) Style1
    c) Style2
    Note: Style1 leads to Headernode and Style2 leads to ChildNode, Style1 and Style 2 are interconnected.
    Target File: ( Idoc )
    a) Header Node ( EHDRNDE)
    b) Child NOde ( CHLDNDE)
    And my question is.... I have to populate Header Node and Child Node in target side on certain conditions of the source file. they are;
    I) Whenver a different style1 comes in file...I have to create a Headernode for that in target file. Style1 can contain number of Style2 nodes with the same node. like
    Ex:
    i) Style1 -
    Style2a, Style2b, Style2c
    ii) Style1 ....... Style2aa, Style2ab.
    For this above requirement, I have to create corresponding target nodes for Header ( Style1 ) and as well as for Child ( Style2)
    for ex1: it should be one Header node in target and 3 corresponding child nodes
    for ex2 : It should be One Header Node and 2 child nodes
    For this requirement...can we use node functions....if it is...could you please help me.
    ....Stallin
    Edited by: stallin xavier on May 1, 2008 4:18 AM

    Hi,
    You can do it by using node function as well as UDF also.
    1) If your sequence is sorted and always come in sorted order only e.g. 1st come only style1 node and child node and then come all nodes from style 2 then u can use node function.
    2) for parent node use collpse context then remove context.
    3) for child node 1st differntiat according to your condition and then use split by value(value change)
    4) If occurance of style1 node and style2 node is not fixed then you don't have any option you have to write UDF.
    I think this will help you.
    Regards,
    Rohit.
    Reward points if helpful

  • Node functions in Message Mapping

    Hi,
    Could someone help me with some good exercises for node functions such as splitbyvalue, collapsecontents, removecontexts.
    I am a newbie to these functions and have absolutely no idea on how to use them. Would appreciate if someone could give very detailed examples to these functions in a step by step manner, so that I can create them just by following your instructions.
    Any links to video presentations are welcome too.
    Cheers,
    S

    Hi ,
    For a fresher, the informationa and examples given in the help.com would be more helpful and it will help you in building string fundamentals. Once your basics and funcdamentals concepts becomes strong then you can go for more complex exmples. Here is help.sap link where you can leran Node functions of MM of PI.
    http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/frameset.htm
    Thanks,
    RK

  • New Node functions in PI 7

    Hi All,
    Can anybody tell me what are the new node function(s) added in PI 7 compare to XI 3? Apart from node fucntions what are the new functions available in PI 7?
    Regards
    Faisal

    Refer PI 7.1 Blogs:
    /people/peter.gutsche/blog/2008/10/27/what146s-new-in-sap-netweaver-pi-71
    SAP NetWeaver Process Integration 7.1 - Details [original link is broken]
    New in SAP PI 7.1
    Mapping enhancements:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/44/a7b4355d867455e10000000a11466f/frameset.htm
    1.     Graphical variables:
    /people/william.li/blog/2008/02/13/sap-pi-71-mapping-enhancements-series-using-graphical-variable
    2.     Function library: In lower releases, you were able to save and manage user-defined functions as part of one message mapping only. You can now create  function libraries independently of specific message mappings, and can use the functions you define in them in multiple message mappings.
    http://wiki.sdn.sap.com/wiki/display/XI/PI7.1ConceptofFunctionLibraryinProcessIntegration
    http://help.sap.com/saphelp_nwpi71/helpdata/en/43/78bd467afa345ae10000000a422035/frameset.htm 
    3.  Correcting Structural Inconsistencies
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417400)ID1636393650DB10213226047035219960End?blog=/pub/wlg/8662
    http://help.sap.com/saphelp_nwpi71/helpdata/en/07/0c13f257f94c6089894b62f3568b9d/frameset.htm
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417400)ID1636393650DB10213226047035219960End?blog=/pub/wlg/8282

  • IDOC to FILE(xml) graphical mapping using node function createIf

    Greetings All,
                My Scenario is Idoc to File(XML)
    Target Structure is 
                           MO_MAT_LAN....................(0: unbound)
                                LAN_KEY.......................(0 :1)
                                DESCRIPTION.................(0 : 1)
    Source MATMAS Idoc
                           E1MAKTM.........................(0 : 99)
                                SPRAS_ISO..................(0 :1) 
                                MAKTX..........................(0 :1)
    initially i had mapped E1MAKTM----->MO_MAT_LAN but i dont want target node MO_MAT_LAN to be created when the SPRAS_ISO is equal to EN
    I have tried using node function createIf but the node is geting created only once although the input stucture is having occurance more than 5.
    Can anyone please help me to achive this.
    Many thanks,
    Rohit

    U have to use:-
    SPRAS_ISO mak the context to E1MAKTM compare (Use equals) it with Constant function EN out put to be given to If without else and in then Give E1MAKTM and map out put of If node to MO_MAT_LAN.
    chirag

  • How to check if a function exists in Flex?

    Hi,
    I am wondering if there is any method to check if a function exists in Actionscript/Flex.
    The same way as we do isdefined in javascript.
    Thank you
    Mayank

    On instances - use Object hasOwnProperty method - all objects in AS3 inherit from Object:
    var mc:MovieClip = new MovieClip();
    var s:Sprite = new Sprite();
    trace(mc.hasOwnProperty("play")); // true
    trace(s.hasOwnProperty("play")); // false

  • In the calendar app, is it possible to link directly to a phone number or address? This function exists in my Palm phone.

    Is it possible within the native iPhone calendar app to link an appointment directly with a phone number or address or person?  This function existed in the software on my 3 previous Palm phones.

    No, it isn't possible.  It would be nice but it would be very tricky to do since usually the files themselves also hold the data and can only hold it for one album at a time without changing a widely used standard for audio track tagging.  Frankly, I suspect the space savings would not be all that great.
    Yu can always ask:
    http://www.apple.com/feedback/itunesapp.html

  • Using standard node functions

    Hi all, i am newbie
    i want to knwo how can i convert following source message to target message
    using standard node functions?
    Source Message
    <devices>
        <device>
            <sn>123</sn>
            <city>Berlin</city>
        </device>
        <device>
            <sn>345</sn>
            <city>Berlin</city>
        </device>
        <device>
            <sn>777</sn>
            <city>Bonn</city>
        </device>
    </devices
    Target Message
    <cities>
        <city>
            <name>Berlin</name>
            <devices>
                <sn>123</sn>
                <sn>345</sn>
            </devices>
        </city>
        <city>
            <name>Bonn</name>
            <devices>
                <sn>777</sn>
            </devices>
        </city>
    </cities>

    Hi,
    Since you are newbie i would suggest follow the stefan's blog. use formatbyexample for your requirement.
    New functions in the Graphical Mapping Tool XI ... | SCN
    Please read the comments also you will get more idea
    Regards,
    Muniyappan.

  • Node functions in PCK

    Hi all,
    Does PCK provide Node Functions in Message Mapping?

    Hi Krishna,
       All the node functions in Message Mappings are provided by PCK..
    Also please go through the below link which gives you in detail about the node functions...
    http://help.sap.com/saphelp_nw04/helpdata/en/ee/bf9640dc522f28e10000000a1550b0/frameset.htm
    Hope this helps...
    Do get back to me in case you need any other details..
    Regards
    Kiran..

Maybe you are looking for