Handling XMLs with unknown structures.

Hello Experts,
   I have to build a generic interface RFC -> PI -> JMS, which will receive XML structure as a string in import parameter of RFC.
Then I need to convert this string to XML, add digital signatures and then output the signed payload to JMS Queues.
I have been looking at SDN posts and found that XSLT can be used to convert string to XML. But the catch is I am not aware of the XML structures that will be sent in as a string. So how can I handle these unknown structures? Or what should be the structure of the target Interface for XSLT mapping??
Any inputs on this will be of great help.
Kind Regards,
PIQueries_2010

If you dont want the target structure to be validated XSLT/java mapping is the way to go as pointed out by MIchal.
If you use the new feature, I believe it will validate the target structure.
@Michal,
Just a quick clarification, when we use java/xslt mapping to skip target message validation in PI 7.1 is it mandatory to have the operation name exactly same as Service Interface name? I recently ran into an issue where the Service interface name was different from the operation name and the Java mapping was giving an error saying "Unable to validate root element" or something similar (Ofcourse, the content was binary file and hence java mapping to skip the target structure validation).
Thanks
Jai

Similar Messages

  • Maintain attribute order in XML with a structure?

    I'm using xmlParse() to read an XML file into a structure, and then process the structure (replace some of the XML attributes) and then write the structure back out as an XML file. The problem is that I loose the original ordering of XML attrbutes when I convert to a structure, and instead end up with a new attribute order for each element that is alphabetical.
    In otherwords: <element c="text" d="text" a="text" />
    gets rewritten as: <element a="text" c="text" d="text" />
    which is a problem for this application.
    Is there a way to work with XML in CF but maintain attribute ordering (LinkedHashMap instead of a structure, maybe)?
    Thanks.
    Walter

    but using ColdFusion to process XML in this way is making a pretty big change in the XML structure.
    No, it's not changing the structure in any meaningful way: the attribute ordering isn't meaningful in XML, so if the order of them changes, then that's not a meaningful change.  In any way that XML should be used, it doesn't matter.
    When CF reads an string (like file contents) and parses it as XML, it needs to create an XML object; that XML object will adhere to the rules of XML; one of which is "atribute order has no significance", so it will not (and ought not) bother to "remember" the order that the attributes were in in the original string.  When one converts that object back into a string, some sort of ordering needs to be used to write them back, and CF seems to arbitrarily use alphabetical order.  But it cannot refer back to information that it doesn't have (the original ordering), so the original ordering can't be preserved.
    There's nothing unreasonable or that shouldn't be expected in this process, unfortunately (for you, I mean).
    Adam

  • How to read  xml with deep  structure into intarnal table.

    Hi,
    Could you pls any body provide xslt code for deep structure  convert into internal table.
    sample xml file:
    - <ns0:CREATIONOFCONTRACT xmlns:ns0="http://BPCreationXSD.CreationOfContract">
    - <CREATIONOFCONTRACTDATA>
      <RequestType>L0011</RequestType>
      <ApplicationId>AN-12</ApplicationId>
      <LoanId>QO-22</LoanId>
    - <Borrowerguarantorinfo>
      <Borrowerbpno>101020</Borrowerbpno>
      <Co-borrower1BPNo>101021</Co-borrower1BPNo>
      <Co-borrower2BPNo>101022</Co-borrower2BPNo>
      <Guarantor1BPNo>101023</Guarantor1BPNo>
      <Guarantor2BPNo>101024</Guarantor2BPNo>
      <Branch>New Delhi</Branch>
      </Borrowerguarantorinfo>
    - <Loaninfo>
      <Applicationtype>Fresh</Applicationtype>
      <Purposeofloan>Home Purchase</Purposeofloan>
      <Securedunsecuredflag>Secured</Securedunsecuredflag>
      <Loantype>HL with MRTA</Loantype>
      <Loancurrency>INR</Loancurrency>
      <Loanproduct>MaxiHome Loan Package</Loanproduct>
      <Loanscheme>MaxiHome ZEC</Loanscheme>
      <Loanamount>1500000.00</Loanamount>
      <Loantenure>60</Loantenure>
      <Tiered>No</Tiered>
      </Loaninfo>
      <Periodfrom>01/07/2009</Periodfrom>
      <Periodto>16/09/2019</Periodto>
      <RateType>Fixed</RateType>
      <Ratecode>10.25</Ratecode>
      </CREATIONOFCONTRACTDATA>
      </ns0:CREATIONOFCONTRACT>

    Hi Ramesh,
    Thanks for the info,but I found lot of tables unfortunately I am not getting the value for radio buttons. Also I found a FM FIELD_SELECTION_CUSTOMIZE , IMPORT_DYNPRO etc which will call that screen based on profile but it will not store data any where. I found several tables like TCATS, TFAWC, TFAWF, TFAWT etc.But I am not getting the value for raduio buttons.
    Thanks & Regards,
    Nagaraj Kalbavi

  • Get a table from XML with unknown number of columns

    Guys, I'm looking if it is possible to get the following result:
    imagine I have an XML like one of the following (it doesn't matter which one, I just give a few examples for you to have a choice). The main idea, that there are described several columns and values for 1 row of these columns, e.g.:
    SQL> with t as (select
      2  ' <column>
      3    <name>col1</name>
      4    <value>100</value>
      5   </column>
      6   <column>
      7    <name>col2</name>
      8    <value>200</value>
      9   </column>' xml from dual union all
    10             select
    11  ' <column>col1
    12     <value>100</value>
    13    </column>
    14    <column>col1
    15     <value>100</value>
    16    </column>' from dual union all
    17             select
    18  '<col1>100</col1>
    19  <col2>200</col2>' from dual)
    20             --
    21             select * from t
    22  /
    XML
    <column>
      <name>col1</name>
      <value>100</value>
    </column>
    <column>
      <name>col2</name>
      <value>200</value>
    </column>
    <column>col1
       <value>100</value>
      </column>
      <column>col1
       <value>100</value>
      </column>
    <col1>100</col1>
    <col2>200</col2>
    SQL> I want to get the following result from this XML:
          COL1       COL2
           100        200So the main idea here is that the number of columns can vary - it is not fixed.
    So it is quite similar to dynamic SQL.
    Is it possibe with XML?

    The only general way to get a flexible amount of columns I know of is to use table functions returning anydataset.
    It should be rather straightforward to pass in a xml document and return its tablestructure respectivly (though the »structure« of the xml must be fixed).
    Would that be an acceptable way of doing this?

  • Java code to access XML (with unknown SCHEMA)

    Dear participants,
    My name is Raghavendra , i have a requirement of reading XML files Dynamically and parse them and create java types for manipulation . i will not be provided with sxd files (no schema compilation )coz no one knows how many types of structures are there. i want a generic solution. Please Help.
    Thanks ,
    Raghavendra Ach
    you can mail me to " [email protected]"

    JAXB has been available as an early release download for some time. There are also XML Binding packages available from Borland (JBuilder) and Castor. These tools create Java classes from a source document, xml,dtd etc. You can use these classes to marshal-unmarshal XML documents.
    Dave

  • XML with DefaultTreeModel structure

    I�m developing an application which uses DefaultTreeModel as one of its major structure...
    may I use a XML file as persistence ? May I map directly between the TreeModel and a XML file ?
    Actually people around here cited Castor as the solution, but I can�t find in the castor documentation about trees mapping, just Vector, Hashtable and arrays...

    I�m thinking like this way:
    the XML is a tree structure...
    the TreeModel is obviously a tree structure...
    then, I should be able to create a Java DefaultTreeModel which reflects the XML file contents..
    I�m reading the SUN tutorial ...

  • How to make copies of internal table with unknown structure?

    Dis is the detailed description of a problem i have and i
    tried all i can to solve it without satisfied results.
    I want to copy an internal table of a type defined in the
    ABAP program itself, not dictionary. I have a function
    that is supposed to accept the internal table as a
    parameter of type 'any table'. The function should create
    the new internal table using the field catalog of the
    passed 'any table' and then create a new internal table
    using "create_dynamic_table" and return the DATA pointer.
    If anyone knows how it is done pls help me out.
    I would like to get the field catalog of the following
    internal table automatically by using some sap function..
    TYPES:
    BEGIN OF MYTYPE,
      NAME TYPE SOMEZTABLE-NAME,
      AGE TYPE SOMEZTABLE-AGE,
    END OF MYTYPE.
    DATA:
    IT_TABLE TYPE TABLE OF MYTABLE INITIAL SIZE 0.
    DATA:
    COPY_OF_IT_TABLE TYPE REF TO DATA.
    SELECT NAME AGE INTO TABLE IT_TABLE FROM S0MEZTABLE.
    PERFORM CREATECOPY USING IT_TABLE CHANGING COPY_OF_IT_TABLE.
    FORM CREATECOPY
      USING
        IT_TABLE <b>TYPE ANY TABLE</b>
      CHANGING
        COPY_OF_IT_TABLE TYPE REF TO DATA.
    <i>[ Here i would like to create a copy the passed
    internal table and return a reference to it. I donot want
    to refer to the same table passed. I guess the use of
    function CREATE_DYNAMIC_TABLE in the CL_ALV_TABLE_CREATE
    clss is required. ]</i>
    ENDFORM.

    Ravi,
    If all you want to do is to copy this into another table, why can't do something like this.
    TYPES:
    BEGIN OF MYTYPE,
      NAME TYPE SOMEZTABLE-NAME,
      AGE TYPE SOMEZTABLE-AGE,
    END OF MYTYPE.
    DATA:
    IT_TABLE TYPE TABLE OF MYTABLE INITIAL SIZE 0.
    DATA: COPY_OF_IT_TABLE TYPE REF TO DATA.
    SELECT NAME AGE INTO TABLE IT_TABLE FROM S0MEZTABLE.
    FIELD-SYMBOLS : <FT_COPY_TABLE> TYPE ANY TABLE.
    Call Method CL_ALV_TABLE_CREATE->CREATE_DYNAMIC_TABLE
    Exporting
    IT_FIELDCATALOG = T_FIELDCAT
    Importing
    EP_TABLE = COPY_OF_IT_TABLE
    ASSIGN COPY_OF_IT_TABLE->* TO <FT_COPY_TABLE>
    However, this is provided you already have a field catalog. Now in this case we have not created a field catalog. So, for that
    data : BEGIN OF MYTABLE OCCURS 0 WITH HEADER LINE
      NAME TYPE SOMEZTABLE-NAME,
      AGE TYPE SOMEZTABLE-AGE,
    END OF MYTABLE.
    Now, create the field catalog.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      I_BUFFER_ACTIVE              =
      I_STRUCTURE_NAME             =
      I_CLIENT_NEVER_DISPLAY       = 'X'
      I_BYPASSING_BUFFER           =
        I_INTERNAL_TABNAME           = 'MYTABLE'
      CHANGING
        CT_FIELDCAT                  = T_FIELDCAT
    EXCEPTIONS
      INCONSISTENT_INTERFACE       = 1
      PROGRAM_ERROR                = 2
      OTHERS                       = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    This should create the field catalog.
    Regards,
    Ravi

  • Problem using Handler chain with JAXWS

    Hi, I want to use handler chain on a web service and I'm not sure if I understood correctly how it works. In every example I found on the web the handler chain is applied on the client side (the binding is made on the generated client side). So, when I send a request the handler catch an outbound message and when the web service respond, it receive an inbound message. The problem is that I would like to link the handler on the server side, i.e. when the web service receive a request, the handler receives an inbound message and when the WS respond it receives an outbound message.
    Is it possible to do so?? I mean, it makes no sense to link the handler on the client side, since I don't have control on the client side, I produce web services and I want to apply some handlers at this level.
    Any idea??? Or is there something that I didn't understand about handler chains??
    Thanks,
    Korg

    Hello again, I finally found how to do what I wanted to do. The problem came from different examples I found on the web. In my handler.xml file, the structure must be something like:
    <jws:handler-chains xmlns:jws="http://java.sun.com/xml/ns/javaee">
    <jws:handler-chain>
    <jws:handler>
    <jws:handler-class>........</jws:handler-class>
    </jws:handler>
    </jws:handler-chain>
    </jws:handler-chains>
    In many examples, there is an element at the root that is "handler-config" and it doesn't work if I use it this way. Here's an example of a handler.xml file that doesn't work:
    <handler-config>
    <handler-chains>
    <handler-chain>
    <handler>
    <handler-class>............</handler-class>
    </handler>
    </handler-chain>
    </handler-chains>
    </handler-config>
    Korg

  • How to use STRANS to translate XML to ABAP with deep structure

    every experts, I want to use Tcode: STRANS to translate XML to ABAP, But it does not work well,
    here is XML code,I want to translate this XML into an an Inter table gt_orders with deep structure of oeb, and colum oeb is also and intertable,how can I do this.
    <?xml version="1.0" encoding="gb2312" ?><axmt410><ObjectID>setSalesOrder</ObjectID><azp01>000000</azp01><oea00>1</oea00><ta_oeaecn>SO-140227-3041</ta_oeaecn><oea03>25325017</oea03><oea02>2014-02-27 17:44:44.0</oea02><ta_oea002>2763.0</ta_oea002><ta_oea001>0.0</ta_oea001><oea14></oea14><oea15>25325017</oea15><oea23>RMB</oea23><oeaconf>S3</oeaconf><oea10></oea10><oeaud01>null</oeaud01><ta_oea007></ta_oea007><oea25>101</oea25><ta_oea008>0</ta_oea008><ta_oea009>null</ta_oea009><oeauser>Hanjingya</oeauser><ta_oeanday>2014-02-27 17:44:44.991</ta_oeanday><ta_oeamday>2014-02-28 08:30:14.866</ta_oeamday><ta_oeacday>2014-02-28 08:30:14.866</ta_oeacday><oeaud02>0</oeaud02><ta_oea030>null</ta_oea030><oeb><oeb03>1</oeb03><oeb04>7400208249</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address1</ta_oeb003><ta_oeb004>zhangdagui、zhanglan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb><oeb><oeb03>2</oeb03><oeb04>7400208250</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address2</ta_oeb003><ta_oeb004>zhangdagui、chenlan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb></axmt410>
    I write these codes in SAP XSLT  editor
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
       <xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
       <xsl:strip-space elements="*"/>
       <xsl:strip-space elements="*"/>
       <xsl:template match="/">
         <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
           <asx:values>
             <ORDERS>
               <xsl:apply-templates select="//axmt410"/>
             </ORDERS>
           </asx:values>
         </asx:abap>
       </xsl:template>
       <xsl:template match="axmt410">
         <OBJECTID>
           <xsl:value-of select="ObjectID"/>
         </OBJECTID>
         <AZP01>
           <xsl:value-of select="azp01"/>
         </AZP01>
         <OEA00>
           <xsl:value-of select="oea00"/>
         </OEA00>
         <TA_OEAECN>
           <xsl:value-of select="ta_oeaecn"/>
         </TA_OEAECN>
         <OEA03>
           <xsl:value-of select="oea03"/>
         </OEA03>
         <OEA05>
           <xsl:value-of select="oea05"/>
         </OEA05>
         <OEA02>
           <xsl:value-of select="oea02"/>
         </OEA02>
         <TA_OEA002>
           <xsl:value-of select="ta_oea002"/>
         </TA_OEA002>
         <TA_OEA001>
           <xsl:value-of select="ta_oea001"/>
         </TA_OEA001>
         <OEA14>
           <xsl:value-of select="ora14"/>
         </OEA14>
         <OEA15>
           <xsl:value-of select="ora15"/>
         </OEA15>
         <OEA23>
           <xsl:value-of select="ora23"/>
         </OEA23>
         <OEACONF>
           <xsl:value-of select="oeaconf"/>
         </OEACONF>
         <OEA10>
           <xsl:value-of select="ora10"/>
         </OEA10>
         <OEAUD01>
           <xsl:value-of select="oeaud01"/>
         </OEAUD01>
         <TA_OEA007>
           <xsl:value-of select="ta_oea007"/>
         </TA_OEA007>
         <OEA25>
           <xsl:value-of select="ora25"/>
         </OEA25>
         <TA_OEA008>
           <xsl:value-of select="ta_oea008"/>
         </TA_OEA008>
         <TA_OEA009>
           <xsl:value-of select="ta_oea009"/>
         </TA_OEA009>
         <TA_OEA013>
           <xsl:value-of select="ta_oea013"/>
         </TA_OEA013>
         <TA_OEA014>
           <xsl:value-of select="ta_oea014"/>
         </TA_OEA014>
         <TA_OEA015>
           <xsl:value-of select="ta_oea015"/>
         </TA_OEA015>
         <TA_OEA016>
           <xsl:value-of select="ta_oea016"/>
         </TA_OEA016>
         <TA_OEA017>
           <xsl:value-of select="ta_oea017"/>
         </TA_OEA017>
         <TA_OEA018>
           <xsl:value-of select="ta_oea018"/>
         </TA_OEA018>
         <TA_OEA019>
           <xsl:value-of select="ta_oea019"/>
         </TA_OEA019>
         <TA_OEA020>
           <xsl:value-of select="ta_oea020"/>
         </TA_OEA020>
         <TA_OEA021>
           <xsl:value-of select="ta_oea021"/>
         </TA_OEA021>
         <TA_OEA022>
           <xsl:value-of select="ta_oea022"/>
         </TA_OEA022>
         <TA_OEA028>
           <xsl:value-of select="ta_oea028"/>
         </TA_OEA028>
         <OEAUSER>
           <xsl:value-of select="oeauser"/>
         </OEAUSER>
         <TA_OEANDAY>
           <xsl:value-of select="ta_oeanday"/>
         </TA_OEANDAY>
         <TA_OEAMDAY>
           <xsl:value-of select="ta_oeamday"/>
         </TA_OEAMDAY>
         <TA_OEACDAY>
           <xsl:value-of select="ta_oeacday"/>
         </TA_OEACDAY>
         <OEAUD02>
           <xsl:value-of select="oeaud02"/>
         </OEAUD02>
         <TA_OEA030>
           <xsl:value-of select="ta_oea030"/>
         </TA_OEA030>
         <OEB>
           <xsl:for-each select="oeb">
             <OEB03>
               <xsl:value-of select="oeb03"/>
             </OEB03>
             <OEB04>
               <xsl:value-of select="oeb04"/>
             </OEB04>
             <OEB05>
               <xsl:value-of select="oeb05"/>
             </OEB05>
             <OEB17>
               <xsl:value-of select="oeb17"/>
             </OEB17>
             <OEB13>
               <xsl:value-of select="oeb13"/>
             </OEB13>
             <OEB15>
               <xsl:value-of select="oeb15"/>
             </OEB15>
             <OEB12>
               <xsl:value-of select="oeb12"/>
             </OEB12>
             <OEB09>
               <xsl:value-of select="oeb09"/>
             </OEB09>
             <TA_OEB001>
               <xsl:value-of select="ta_oeb001"/>
             </TA_OEB001>
             <TA_OEB002>
               <xsl:value-of select="ta_oeb002"/>
             </TA_OEB002>
             <TA_OEB003>
               <xsl:value-of select="ta_oeb003"/>
             </TA_OEB003>
             <TA_OEB004>
               <xsl:value-of select="ta_oeb004"/>
             </TA_OEB004>
             <TA_OEB005>
               <xsl:value-of select="ta_oeb005"/>
             </TA_OEB005>
             <TA_OEB006>
               <xsl:value-of select="ta_oeb006"/>
             </TA_OEB006>
             <OEBUD01>
               <xsl:value-of select="oebud01"/>
             </OEBUD01>
           </xsl:for-each>
         </OEB>
       </xsl:template>
    </xsl:transform>
    and I use below ABAP program for a test, but the items from XML can not translate into Interner table gt_orders-oeb[]
    TYPE-POOLS abap.
    CONSTANTS gs_file TYPE string VALUE 'C:\temp\order02.xml'.
    * This is the structure for the data from the XML file
    TYPES:
       BEGIN OF typ_s_oeb,
         oeb03     TYPE string,    "
         oeb04     TYPE string,    "
         oeb05     TYPE string,    "
         oeb17     TYPE string,    "
         oeb13     TYPE string,   
         oeb15     TYPE string,   
         oeb12     TYPE string,    "
         oeb09     TYPE string,    "
         ta_oeb001 TYPE string,    "
         ta_oeb002 TYPE string,    "
         ta_oeb003 TYPE string,    "
         ta_oeb004 TYPE string,    "
         ta_oeb005 TYPE string,    "
         ta_oeb006 TYPE string,    "
         ta_oeb013 TYPE string,    "
         ta_oeb014 TYPE string,    "
         ta_oeb015 TYPE string,    "
         ta_oeb016 TYPE string,    "
         ta_oeb017 TYPE string,    "
         ta_oeb018 TYPE string,    "
         ta_oeb019 TYPE string,    "
         ta_oeb020 TYPE string,    "
         ta_oeb021 TYPE string,    "
         ta_oeb022 TYPE string,    "
         oebud01   TYPE string,    "
       END OF typ_s_oeb.
    TYPES: typ_t_oeb TYPE TABLE OF typ_s_oeb WITH KEY oeb03.
    TYPES:
       BEGIN OF typ_s_order,
         objectid   TYPE string,   "
         azp01      TYPE string,   "
         oea00      TYPE string,   "
         ta_oeaecn  TYPE string,   "
         oea03      TYPE string,   "
         oea02      TYPE string,   "
         ta_oea002  TYPE string,   "
         ta_oea001  TYPE string,   "
         oea14      TYPE string,   "
         oea15      TYPE string,  
         oea23      TYPE string,   "
         oeaconf    TYPE string,   "
         oea10      TYPE string,   "
         oeaud01    TYPE string,   "
         ta_oea007  TYPE string,   "
         oea25      TYPE string,   "
         ta_oea008  TYPE string,   "
         ta_oea009  TYPE string,   "
         oeauser    TYPE string,   "
         ta_oeanday TYPE string,   "
         ta_oeamday TYPE string,   "
         ta_oeacday TYPE string,   "
         oeaud02    TYPE string,   "
         ta_oea030  TYPE string,   "
         ta_oea013  TYPE string,
         ta_oea014  TYPE string,
         ta_oea015  TYPE string,
         ta_oea016  TYPE string,
         ta_oea017  TYPE string,
         ta_oea018  TYPE string,
         ta_oea019  TYPE string,
         ta_oea020  TYPE string,
         ta_oea021  TYPE string,
         ta_oea022  TYPE string,
         ta_oea025  TYPE string,
         oeb        TYPE typ_t_oeb,
        END OF typ_s_order.
    * Table for the XML content
    DATA: gt_itab       TYPE STANDARD TABLE OF char2048,
           gs_itab       LIKE LINE OF gt_itab.
    * Table and work ares for the data from the XML file
    DATA: gt_orders     TYPE STANDARD TABLE OF typ_s_order,
           gs_orders     TYPE typ_s_order.
    * Result table that contains references
    * of the internal tables to be filled
    DATA: gt_result_xml TYPE abap_trans_resbind_tab,
           gs_result_xml TYPE abap_trans_resbind.
    * For error handling
    DATA: gs_rif_ex     TYPE REF TO cx_root,
           gs_var_text   TYPE string.
    * Get the XML file from your client
    CALL METHOD cl_gui_frontend_services=>gui_upload
       EXPORTING
         filename                = gs_file
       CHANGING
         data_tab                = gt_itab
       EXCEPTIONS
         file_open_error         = 1
         file_read_error         = 2
         no_batch                = 3
         gui_refuse_filetransfer = 4
         invalid_type            = 5
         no_authority            = 6
         unknown_error           = 7
         bad_data_format         = 8
         header_not_allowed      = 9
         separator_not_allowed   = 10
         header_too_long         = 11
         unknown_dp_error        = 12
         access_denied           = 13
         dp_out_of_memory        = 14
         disk_full               = 15
         dp_timeout              = 16
         not_supported_by_gui    = 17
         error_no_gui            = 18
         OTHERS                  = 19.
    IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    * Fill the result table with a reference to the data table.
    * Within the XSLT stylesheet, the data table can be accessed with
    * "IPERSON".
    GET REFERENCE OF gt_orders INTO gs_result_xml-value.
    gs_result_xml-name = 'ORDERS'.
    APPEND gs_result_xml TO gt_result_xml.
    * Perform the XSLT styleshee
    TRY.
         CALL TRANSFORMATION zfx_so_xml_to_abap
         SOURCE XML gt_itab
         RESULT (gt_result_xml).
       CATCH cx_root INTO gs_rif_ex.
         gs_var_text = gs_rif_ex->get_text( ).
         MESSAGE gs_var_text TYPE 'S'.
    ENDTRY.
    LOOP AT gt_orders INTO gs_orders.
    ENDLOOP.

    The simplest way seems to me is to use a XSL file for that. The <xsl:output> attributes doctype-system and doctype-public generate the DTD declaration <!DOCTYPE YOUR_ROOT SYSTEM "yourDTDfile.dtd"> and <!DOCTYPE YOUR_ROOT PUBLIC "yourDTDfile.dtd">, respectively.
    When calling transformerInstance.transform() the XSLT processor performs the identity transformation - it just copies elements, attributes, content, processing instructions and comments to the result stream.
    If you're using an xsl file for your transformation already, simply add <xsl:output doctype-system="yourDTDfile.dtd"/> to your existing XSL file.
    If you're only using the identity transformation you'd need to change the line of code where you obtain the transformer instance from the TransformerFactory to:
    t_factory.newTransformer(new StreamSource("test.xsl"));
    and use this as test.xsl:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output doctype-system="yourDTDfile.dtd"/>
       <!-- this is the identity transformation -->
       <xsl:template match="*|@*|comment()|processing-instruction()|text()">
          <xsl:copy>
             <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
          </xsl:copy>
       </xsl:template>
    </xsl:stylesheet>Good luck.

  • Unknown structure ID 0 for flexfield code GL# with application ID 101

    Hi Experts,
    I am working on Report builder 6i, EBS 11i, and data base 9i. I have standard report, when i am running it, it's giving below error.
    ERROR: APP-FND-01016: Routine FDFRKS: Unknown structure ID 0 for flexfield code GL# with application ID 101.
    It's calling below thing in Before Report Trigger.
    begin
    SRW.USER_EXIT('FND FLEXSQL CODE="GL#" NUM=":P_ACCT_STRUCT_NUM"
    APPL_SHORT_NAME="SQLGL" OUTPUT="P_acct_flex"
    MODE="SELECT" DISPLAY="ALL" TABLEALIAS="GCC"');
    exception when srw.user_exit_failure then
    srw.message(3,'Failed in GL#/Select');
    raise;
    end;
    Could somebody help me what could be the reason for this error.
    Thanks.

    Hi,
    Is the error still ocurring ? Is yes, please refer the below note in Metalink. This should resolve the issue.
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=227438.1
    -Sailaja.

  • XML import for repetition, is repitition with this structure possible

    If it is possible, what does the XML and or template structure have to look like, in order to support repeating sections of
    1. Chapter name (as a text)
    2. Table
    1. Chapter name
    2. Table
    1. Chapter name
    2. Table
    and so on...
    Everything should be inside a text frame, in order to let the paragraph style of "Chapter name" always begin a new page. The text container is mapped to the xml element called "grp" in the example below.
    I've imported in numerous ways with varying degrees of correctness, so if there is anyone that knows what I mean and how to tackle the problem, I would be very glad. I can work around the XML and the document in almost any way...
    I only get it to work if there are sufficient number of chapternames and tables put out on the body page from start. I would like InDesign to create copies of the "template"...
    But having just one "template" out on the body page, I get a result like this in the structure (and just the first one is mapped to the body page template, as you can see – the rest of them being empty unmapped XML brackets):
    Thanks,
    Andreas

    I made a layout on the first body page, and then I imported into that.
    Err, you mean a text frame, not a layout, right? OK, I haven't played with it that way, I'll take a look at it tomorrow (might be a while) -- if no one else ha solved it first.
    (The tables are not visible in the structure, howcome?)
    I believe that once a table is converted from an XML table into an InDesign table, it is no longer visible as a distinct XML object, just like two letters in a word are not visible in the structure. (I could be wrong on this).
    Yes, I used CALS tables. Why? Because it was the default. I made a layout like you described and exported it to XML, cleaned up the XML,
    and reimported it for my test. CALS was the default checkbox, so I went with it. I don't think it has naything to do with the structure question.
    I didn't use cals tables in my own XML file, but ordinary ones, mapped by column.
    Aren't those more annoying to use?
    Anyhow:
    ... but the repetition doing it my way does not work – as it does in your sample (and for me too, trying it), dragging the structure out onto the page.
    So, is dragging it a good solution for you? Is your problem solved? Or does that not meet your needs?

  • How to convert an xml to another Xml with a different structure...

    hi
    i have an xml which should be converted to a standard xml with an entirely different structure(Different elements)....can this be done with xml,xsl alone or do we need to write an java class along with them...if there are any examples..it would be of great help...plz help me out....as this is a work stopper...
    given below is the kind i have
    <hotelinfo>
    <hotelname>RADISSON HOTEL CHENNAI </hotelname>
    <address>355 C Gst Road St Thomas Mount Chennai1 600016IN</address>     <price>90.00 - 150.00</price>
    <distance>2 (W)</distance>
    </hotelinfo>
    i need to convert it into
    <propertyName>RADISSON HOTEL CHENNAI </propertyName>
    <address>
    <addressLine>355 C Gst Road St Thomas Mount</addressLine>
    <CityName>Chennai</CityName>
    <PostalCode>600 001</PostalCode>
    <StateName>TamilNadu</StateName>
    <CountryName>India</CountryName>
    </address>
    thanks in advance

    Ok here is the code...
    package mypack;
    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    * @author SM23772
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
    public class Roopa {
         public static void main(String[] args) {
              File docFile = new File("Roopa.xml");
              Document doc = null;
              Document newDoc = null;
              String hname = null, task = null;
              try {
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   doc = db.parse(docFile); //parsing Roopa.xml
                   newDoc = db.newDocument(); //Created New document Object for new xml
                   hname = doc.getElementsByTagName("hotelname").item(0)
                             .getFirstChild().getNodeValue();
                   task = doc.getElementsByTagName("task").item(0).getFirstChild()
                             .getNodeValue();
                   Node rootNode = newDoc.createElement("property-info"); //creating root node;
                   Node pp = newDoc.createElement("name"); //creating a node called name
                   Node taskNode = newDoc.createElement("task"); //creating a node called task
                   pp.appendChild(newDoc.createTextNode(hname)); //appending a text node inisde name
                   taskNode.appendChild(newDoc.createTextNode(task)); //appending the text node inside task
                   rootNode.appendChild(pp); //asppending the nodes inside the root node                       
                   rootNode.appendChild(taskNode);
                   newDoc.appendChild(rootNode); //appending the root node to the document
                   writeXmlFile(newDoc, "Dest.xml"); //function called to write the document to Dest.xml
              } catch (Exception e) {
                   System.out.println(e);
         public static void writeXmlFile(Document doc, String filename) {
              try {
                   // Prepare the DOM document for writing
                   Source source = new DOMSource(doc);
                   // Prepare the output file
                   File file = new File(filename);
                   Result result = new StreamResult(file);
                   // Write the DOM document to the file
                   Transformer xformer = TransformerFactory.newInstance()
                             .newTransformer();
                   xformer.transform(source, result);
              } catch (TransformerConfigurationException e) {
              } catch (TransformerException e) {
    The xml files:
    roopa.xml:
    <hotel>
    <hotelname>RADISSON HOTEL CHENNAI</hotelname>
    <more-info><task>give treate to shanu</task></more-info>
    </hotel>
    Dest.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <property-info><name>RADISSON HOTEL CHENNAI</name><task>give treate to shanu</task></property-info>Please go through the code.. if u have any more concerns do let me know................
    cheers
    Shanu

  • Unknown structure 'ns0:MT_dbglgtr_FileName' found in document'

    I have other problem.
    The receiver channel communication gives the next error:
    Exception in XML Parser (format problem?):'java.lang.Exception: Message processing failed in XML parser: 'Conversion configuration error: Unknown structure 'ns0:MT_dbglgtr_FileName' found in document', probably configuration error in file adapter (XML parser error)'.
    I haven't empty node and any condition.
    Thank you.

    Hi,
    Same problem solved here: (infact many threads with the same problem and solution)
    Error in Receiver FCC: Unknown structure ... found in document
    Re: Receiver File content conversion - NO Output
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Apr 14, 2009 7:42 PM

  • Error in Receiver FCC: Unknown structure ... found in document

    Hi Experts,
    I have a problem with the Receiver File Adapter. I want to use Content Conversion to generate a plain file.
    Input to receiver file adapter:
    <?xml version="1.0" encoding="utf-8" ?>
    <PlainFile>
      <filename>filename.txt</filename>
      <line>Line 1</line>
      <line>Line 2</line>
    </PlainFile>
    Wanted result: a file filename.txt with this content:
    Line 1
    Line 2
    FCC settings:
    RecordSet Structure: line, filename
    line.fieldSeparator:'nl'
    filename.fieldFixedLengths:0
    filename.fixedLengthTooShortHandling:Cut
    Problem is: the adapter throws error "Message processing failed in XML parser: 'Conversion configuration error: Unknown structure 'PlainFile' found in document'"
    If I use:
    RecordSet Structure: PlainFile, line, filename
    and add:
    PlainFile.fieldSeparator:'nl'
    ... the lines are printed, but also the unwanted filename. The XML input results from an 1:n mapping, therefore I want to set different filenames by variable substitution from the payload.
    Many thanks for your help,
    Ralf

    Since you want to the filename to be sent in the payload, check out the below Variable Substitution Method. This information is available in help.sap.com.
    Advanced Tab Page
    Variable Substitution (Target Directory/File Name Scheme)
    If you set the Enable indicator, you can enter variables for the Target Directory and File Name Scheme. Enter the names of the variables and references in the table.
    &#9679;      Enter each variable that you reference in the Target Directory and File Name Scheme fields without the surrounding percentage sign under Name of Variables in the table.
    The variables can refer to attributes of the message header or elements of the message payload.
    &#9675;       If the variables are to refer to an attribute of the message header, add the prefix message: to the name of the variable under Reference. You can specify the following attributes of the message header:
    sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace,
    message_id (message ID with hyphens, for example 9fbe1ff1-9a0d-11d9-8665-cbf10a126331)
    message_id_hex (message ID in hexadecimal format, for example 9fbe1ff19a0d11d98665cbf10a126331)
    For example, if you want to specify the interface name from the message header in the target directory or in the file name scheme, enter message:interface_name as the reference.
    Note
    If one of the message attributes contains characters that are not permitted in a file name, for example \, /, :, *, ?, ", <, >, |, then these characters are replaced by an underscore ("_").
    &#9675;       If the variable refers to an element in XML schema, add the prefix payload: to the information under Reference. The reference then comprises a pseudo path description in the form of a comma-separated list with the schema namea,na,nameb,nb,....
    namea,nameb,... corresponds to the element name and na,nb,... corresponds to the occurrence of the element name at the respective level in the document.
    The description begins at the root of the document and ends at the respective element.
    Example
    To reference the element that is in bold in the example, the following expression is used: payload:root,1,e1,1,e2,2
    The parser searches for the first occurrence of the root element at the first level. It then searches for the first occurrence of e1 at the second level and for the second occurrence of e2 at the third level. The content of the last element (“Example Value”) is set as the value for a specified variable.
    <?xml version="1.0" encoding="UTF-8" ?>
    <root>
      <dummy>
         <e1>
            <e2>Data_1</e2>
            <f/>
            <g attr="abc">text</g>
            <e2>Data_2</e2>
         </e1>
      </dummy>
      <e1>
         <e2>illegal/value</e2>
         <f/>
         <g attr="abc">text</g>
         <e2 attr="fghij">Example Value</e2>
      </e1>
    </root>

  • 'Conversion configuration error: Unknown structure

    Hi, my scenario is very simple, Proxy->PI->File and there is no mapping.
    There is a report that sends all the data to PI with the proxy and that works OK, but when the file adapter must generate the file I get the following error:
    Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.Exception: Exception in XML Parser (format problem?):'java.lang.Exception: Message processing failed in XML parser: 'Conversion configuration error: Unknown structure 'n:WU_MT_BP' found in document', probably configuration error in file adapter (XML parser error)'
    The XML can't be wrong because the MT of the proxy service interface is the same that the MT of the file interface.
    In the file content conversion I specified all the structures, with fieldFixedLenghts parameter and endSeparator = 'nl'... I checked those parameters too and they look OK too...

    >>Unknown structure 'n:WU_MT_BP
    This looks clearly like a content conversion issue.
    In file content conversion for recordset structure,have you specified WU_MT_BP?
    Is this tag required or it shouldn't be coming in payload in first place.
    It is possible that the occurrence of this tag is optional and you may be specified/not-specified content conversion parameters for it.
    Thanks
    Aamir

Maybe you are looking for

  • Help required - Sales order item is partially delivered but the item grayed

    I have a sales order 123 having say item10 with qty 1, item20 with qty 10 , item 30 qty 12 Item 1 confirmed qty 1 and delivered qty is 1 Item 2 confirmed qty 10 and delivered qty 10 Item 3 confirmed qty 1 and delivered qty is 1 Now the item3 still ha

  • How do you reduce the size of keyboard increments

    Greetings, When I have a graphic selected and would like to "nudge" it just a little, if I use one of the arrow keys, it moves it alot.  I don't know where to go in preferences (?) to make any changes, and then I'm not sure what to look for to do so.

  • Mac Pro sudden restar while working

    I just got my new Mac Pro and having very strage behaviour. While working logout suddenly and login screen comes automatically. All my apps are closed and my work which I was doing.... also lost. It happen specially with Cinema 4D app because most of

  • How can i use ADF code in Trinidad

    Hi, I'm having an small Application which is Implemented to some extent using oracle ADF faces components But now, as the Trinidad is an open source i would like to do it in trinidad. If i replace the libraries to trinidad does my implement code in A

  • ERROR when Installing update to my Acrobat.

    It keeps giving me error 1606, could not access network location %APPDATA%\.  My OS is Windows 7, I'm using Firefox 9.0.1. I even tried using Internet Explorer 9 32-bit & 64-bit and they won't even run the install???? I've never had a problem before.