XML to ABAP Problems with many attributes in one Tag (Simple Transform)

Hi
i have a XML-Dataset like this. (It's a sample, in originl there are more fields under <Faktura> and more <Faktura>.) My Problem is reading the Attributes.
<?xml version="1.0" encoding="utf-8"?>
<Fakturen>
<Faktura AVnr="123456789" Amt="100" Lang="1" Nr="1209" RechnungsTyp="B" Status="7" Waehrung="CHF" Year="2011" ZahlungsTyp="B"/>
</Faktura>
</Fakturen>
In the Tag "Faktura are many Attributes. How can i read this. I have try this with this code and many other variation. But it does not work.
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
  <tt:root name="FAKTUREN" type="ddic:ZKSO_HRNET_INTERFACE"/>
  <tt:template>
    <Fakturen>
     <Faktura>
      <tt:attribute name="AVNR" value-ref=".FAKTUREN.FAKTURA.AVNR"/>
      <tt:attribute name="AMT" value-ref=".FAKTUREN.FAKTURA.AMT"/>
      <tt:attribute name="LANG" value-ref=".FAKTUREN.FAKTURA.LANG"/>
      <tt:attribute name="NR" value-ref=".FAKTUREN.FAKTURA.NR"/>
      <tt:attribute name="RECHNUNGSTYP" value-ref=".FAKTUREN.FAKTURA.RECHNUNGSTYP"/>
      <tt:attribute name="STATUS" value-ref=".FAKTUREN.FAKTURA.STATUS"/>
      <tt:attribute name="WAEHRUNG" value-ref=".FAKTUREN.FAKTURA.WAEHRUNG"/>
      <tt:attribute name="YEAR" value-ref=".FAKTUREN.FAKTURA.YEAR"/>
     </Faktura>
    </Fakturen>
  </tt:template>
</tt:transform>
Thanks for help
Stefan
Edited by: Franziska Madl on Mar 2, 2011 2:39 PM

Hi
Thank you for your answer. The function module SMUM_XML_PARSE is a good way to Read a XML. Now I have found the Correct way with simple transfer and it  works with an array too.
many regards
Stefan
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
  <tt:root name="FAKTUREN" type="ddic:ZKSO_HRNET_INTERFACE"/>
  <tt:template>
    <Fakturen>
      <tt:loop ref=".FAKTUREN.FAKTURA">
        <Faktura>
            <tt:attribute name="AVnr" value-ref="AVNR"/>
            <tt:attribute name="Amt" value-ref="AMT"/>
            <tt:attribute name="Lang" value-ref="LANG"/>
            <tt:attribute name="Nr" value-ref="NR"/>
            <tt:attribute name="RechnungsTyp" value-ref="RECHNUNGSTYP"/>
            <tt:attribute name="Status" value-ref="STATUS"/>
            <tt:attribute name="Waehrung" value-ref="WAEHRUNG"/>
            <tt:attribute name="Year" value-ref="YEAR"/>
            <tt:attribute name="ZahlungsTyp" value-ref="ZAHLUNGSTYP"/>
        </Faktura>
      </tt:loop>
    </Fakturen>
  </tt:template>
</tt:transform>

Similar Messages

  • Problem with boolean attribute of JSP tag

    Hi,
    I've being trying to use a custom JSP tag, which has a boolean attribute, declared in the TLD as follows:
    <attribute>
    <name>checked</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <type>boolean</type>
    </attribute>
    The JSP code snippet is:
    <ui:check checked="<%= myBean.isChecked() %>"/>
    where myBean.isChecked() returns a boolean value (primitive type).
    It works fine on some web containers, but it causes a JSP compilation error on Oracle9iAS 9.0.3 Java Edition, which looks like the following:
    Method toBoolean(boolean) not found in class test. _jsp_taghandler_57.setChecked( OracleJspRuntime.toBooleanObject( toBoolean( myBean.isChecked())));
    After decompiling the container's JSP parser, I found what I think it's a bug. The java class generated by the JSP parser does not define a toBoolean method, and neither do its superclasses. The method is defined on the OracleJspRuntime class! I think the correct code would have to be something like:
    OracleJspRuntime.toBooleanObject(OracleJspRuntime.toBoolean(...))
    If I'm correct, then the "convertExpression" method of the "oracle.jsp.parse.JspUtils" class must be changed, because it outputs such wrong code for not just boolean types, but for all the primitive types.
    So, has anyone ever faced this problem before? Does it have a workaround, or a patch? Is it included on the bug fixes for the 9.0.4 release?
    Thanks!

    Instead of:
    out.println("<body onload ="+strAlert+">");
    Try this:
    out.println("<body onload =\""+strAlert+\"">");
    Add two \" around the alert call.

  • Problem with onload attribute in body tag

    hi all,
    i have been trying to test alert message boxes in servlets.when i am trying to run the servlet the alert window box doen;t appear (but it appears when i put "hello" inside the alertbrackets.and if i change it to some other text , it never appears.sounds silly , but pleas help me.
    please help me out. below is the code:
    public class TestApplet extends HttpServlet
         PrintWriter out = null;
         public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException , IOException
              String strAlert = "alert('The userid is already existing.Please select another one')";
              out=res.getWriter();
              res.setContentType("text/html");
              out.println("<html>");
              out.println("<head>");
              out.println("<title>Welcome To Online Stock Market</title>");
              out.println("</head>");
              out.println("<body onload ="+strAlert+">");
              out.println("</body>");
              out.println("</html>");
              out.close();
         public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException
              doPost(req, res);
    }

    Instead of:
    out.println("<body onload ="+strAlert+">");
    Try this:
    out.println("<body onload =\""+strAlert+\"">");
    Add two \" around the alert call.

  • Problem with optional attribute caching on a custom tag

    Hello,
    I've created a tag by extending TagSupport. I have one attribute that is optional. I'm having a problem with this attribute since the tag is cached. If the value is not specified in the tag, it is always using the previous value from the past request.
    I understand why this is happening, but I wonder if there is anyway to reset this value besides doing it at the end of the doStartTag or in the doEndTag methods? I simply want it to be an empty string if it is not in the request.
    Thanks,
    Tim

    Thats abit overkill in my opinion.Probably yes, but its a cleaner option. In case your doEndTag handles custom exceptions, you would anyhow need to put this code in a finally block, right ?
    public int doEndTag() throws JspException {
    try {
    call some methods that throws other checked exceptions;
    }catch(Exception1 e){
    throw JspException(e);
    }catch(Exception2 e){
    //log and ignore
    }finally{
    //clean up here
    return an int;
    Having said that, different containers implement the spec a bit differently. For example, in our project, we use weblogic and for wl, we put our clean up code in the release() method which according to the spec, needs to be called only before gc. Weblogic implementation is a bit different - its called after doEnd() for every use of the tag.
    This is from jsp spec regarding tag life cycle especially with reuse
    Some setters may be called again before a tag handler is reused. For
    instance, setParent() is called if it�s reused within the same page but at a dif-ferent
    level, setPageContext() is called if it�s used in another page, and
    attribute setters are called if the values differ or are expressed as request-time
    attribute values.
    �Check the TryCatchFinally interface for additional details related to exception handling and resource management.
    cheers,
    ram.
    }

  • Very urgent : Problem with field attributes in Datasource

    Hi
    I am getting a problem with field attributes in the datasource.
    The issue came up after i modified the extract structure-i modified one field and
    added one field to the structure.Now those two fields are not visible in BW.
    When i checked with transaction rsa2, i could find that for those two fields , the
    field attribute is <b>'A'</b> which is <b>'Field in OLTP and BW Hidden by SAP'</b>.
    I tried to modify the field attribute to make it visible.Now the issue is that it is not getting reflected after transport in the Q system.What can be the issue.In the Q system its still the old value 'A' ,which makes the fields invisible.
    Please let me know what can be the issue.
    Regards
    Leon

    Hi,
    did you change this attribute via RSA2?
    you need to change your datasource via postprocessing (RSA6); then transport your DS to your Q source system.
    Replicate your datasources in your BW.
    Finally modifiy your Transfer Structure by editing your TRules ( tab Datasource/Tran structure), move your new fields from the right frame to the left frame)
    Maintain your TRules
    Activate
    hope this helps...
    Olivier.

  • Apple store changed the motherboard of my MacBookPro. Have now problems with many Itunes songs.

    Got problems with my MacbookPro. The Apple store changed the motherboard. Have now problems with many songs in my Itunes library. Do not have access anymore because Itunes says that I am using more than 5 computers which is not true. How to resolve?

    iTunes Store: About authorization and deauthorization - http://support.apple.com/kb/HT1420 - and another helpful post: https://discussions.apple.com/message/17828050
    You will have to deauthorize all and then reauthorize specific computers.  Changing your motherboard has apparently made iTunes think you have a different machine.

  • Problem with starting more than one SwingWorker

    Hello
    I wonder if anyone could tell me if there are known problems with starting more than one SwingWorker thread at once?
    In response to an action the user performs, I need to obtain several lists of things from the server. This includes a couple of server-calls, and I want to do the server calls in a thread outside the awt-event thread. So I start a couple of SwingWorker-threads. This works fine sometimes, but not always. Sometimes code in some of the SwingWorkers finished method does not update the ui. I can see that the correct calls are made, but the ui is still not updated correctly. The problem seems to be related to the sequence of when the different thread are finished. For instance, if the sequence is like this:
    SwingWorker1.construct
    SwingWorker2.construct
    SwingWorker1.finished
    SwingWorker2.finished
    Things go fine, but if the sequence is:
    SwingWorker1.construct
    SwingWorker1.finished
    SwingWorker2.construct
    SwingWorker2.finished
    the ui-updates in SwingWorker1.finished is not done correctly.
    Can anyone help me with this?

    This is the point:
    In one SwingWorker thread you have 1 construct method, and 1 finish method - which are both invoked once.
    Therefore you only have one opportunity to update the gui in that thread. This forces you to use many threads if you want regular updates, which I try to avoid.
    Therefore, the solution!
    Have a loop in the construct method that executes the algorithm accordingly, updating the gui accordingly at regular times, maintaining just the 1 thread - becomes easier and nicer for the programmer and the JVM.
    The finish method in this case is to update the gui when all iterations are finished.
    There is nothing wrong with this. Just because you have a finish method that is called in the event-dispatching thread doesn't mean that all your update code must be in there.
    What you MUST ensure is that ALL your update code is executed in the event-dispatching thread, that is the most important thing. After all, SwingWorker is just a helper class, not the gospel template of how to update a gui.

  • Problems with multiple idocs in one file ( Inbound file )

    HI,
    Thanks in Advance for your suggestions.. Highly appreciated.
    We have problems with multiple IDocs in one file.
    We are using XIB ( Amtrix ) as Middleware to receive the files.
    Curretenly When the file contains one IDoc then there is no problem. IDoc is created and everything is ok.
    If file contains two IDocs ( for example two messages ORDERS and DELVERY ) then it is creating two IDocs but both IDocs contains ORDERS plus DELIVERY segements information. That is the problem. Some how SAP unable to differentiate the IDocs in the file.. But it knows that how many idocs are there in the file..because it is creating exact number of idocs.
    We are using TRFC port ... Do I need to change it to File port..
    When we have more than one idoc do we need set any parameter in the file ...

    Thanks for the swift response. Always ideas are useful.
    As of now , Middleware cannot split the file.
    Thing is SAP is creating two Idocs with different message types. Problem is First IDoc contains ORDERS message type but also DELIVERY segments as well. Second IDoc with DELIVERY message tyoe but ORDERS segments as well... This is the problem... I think we are missing some field activation in file for EDIDC record.
    As far as I know file port supports the number of IDocs in one file.. Hope TRFC port also supports that

  • Problem with printing more than one page (ghostscript broken?)

    Hello,
    since one of the last package updates I have problems with printing more than one page. The print problems occurs as well with pdf files as well with printing websites. I use an actual KDE system with commercial turboprint printer driver. The first page always prints fine, but all consecutive pages are corrupted.  As from a similar problem some months ago, I assume a broken ghostscript package. I tried to downgrade ghostscript to check that, but I get depency problems:
    root@arch32 dieter]# ls -l /var/cache/pacman/pkg/ghostscript-*
    -rw-r--r-- 1 root root  9906288 21. Mär 2010  /var/cache/pacman/pkg/ghostscript-8.71-3-i686.pkg.tar.xz
    -rw-r--r-- 1 root root 11402624  8. Okt 22:44 /var/cache/pacman/pkg/ghostscript-9.00-1-i686.pkg.tar.xz
    [root@arch32 dieter]# pacman -U /var/cache/pacman/pkg/ghostscript-8.71-3-i686.pkg.tar.xz
    Löse Abhängigkeiten auf...
    Suche nach Zwischen-Konflikten...
    Fehler: Konnte den Vorgang (Kann Abhängigkeiten nicht erfüllen) nicht vorbereiten
    :: libspectre: benötigt ghostscript>=9.00
    [root@arch32 dieter]#
    Anyone else having printing problems or a solution for my problem?
    Thanks, Dieter

    This may not be related but I had a problem printing a pdf today whereby the second page got corrupted. The same pdf had printed fine several months ago. I realised that (long story) for some reason I had switched drivers (HP printer) from hpijs to hpcups. I installed the printer again as a "new" printer using the hpijs driver and it printed properly this time.
    So it may be that the bug causes issues with some drivers. You could try an alternative driver for the printer as temporary workaround?

  • Problem with Assigning more than one value to GROUP dynamically

    Hi,
    I have a problem with assigning more than one value to GROUP varible dynamically.
    I am able to assign only one value dynamically through Initialization block
    I have even tried with the ROW-WISE initialization blocks..
    using this query..
    SELECT 'GROUP', G.GROUP_NAME
    FROM GROUP_MAP G
    WHERE G.USER_NAME = ':USER'
    if GROUP_1, GROUP_2 are two groups to be associated,
    through this, i'm getting " GROUP_1;GROUP_2 " into GROUP variable ( seen from Narative view )
    And the properties and securities of this Groups are not inherited.
    Please let me know if there is any other way to Populate the GROUP variable dynamically with more than one value.
    Thank you.,

    Hi,
    i finally got in this way..
    i had created a function which takes USER_NAME as input and returns a string that contains the GROUP names with semicolon delimeted..
    Though it is same as that of ROW-WISE initialization,
    the properties of those groups are also being inherited..
    Now, i can assign more than one groups and its properties to a user dynamically.

  • XSLT-problem with sequence attributes

    Hi,
    in my XSLT-program (i'm a real newbie!) i'm adding dynamically attributes and their values to a tag, by using the following code :
    <SUPPLIER>
      <xsl:attribute name="FUNLOC">
        <xsl:value-of select="SUPPLIER_FUNLOC" />
      </xsl:attribute>
      <xsl:attribute name="NAME">
        <xsl:value-of select="SUPPLIER_NAME" />
      </xsl:attribute>
      <xsl:attribute name="LOCATION">
        <xsl:value-of select="SUPPLIER_LOCATION" />
      </xsl:attribute>
      </SUPPLIER>
    The problem is that the attributes in the resulting xml-file are alphabetically ordered. For instance :
    <SUPPLIER FUNLOC="9522222" LOCATION="NL" NAME="Test vendor VMOI">
    How can i arrange that the result of the xml-file is a sequence of entrance is taken, so
    <SUPPLIER FUNLOC="9522222" NAME="Test vendor VMOI" LOCATION="NL" >
    regards,
    Hans
    [email protected]

    Hi Hans,
    I think you're using ABAP-XSLT?!
    If you do so, you can solve the sorting problem by using a 1:1 Message mapping after the ABAP-XSLT mapping. This resolves the problem that the nodes are not in the correct order.
    In your interface mapping you have to configure 2 mappings:
    1: ABAP-XSLT
    2: Message mapping.
    Of course this means that the total processing time increases a little bit.
    I had the same problem with the sequence of my (ACC_DOCUMENT) idoc nodes, the ABAP-XSLT screwed up the idoc, but the 1:1 message mapping solved the problem.
    Regards,
    Mark

  • Javax.xml.stream.XMLInputFactory problems with &

    Hi all
    I am using javax.xml.stream.XMLInputFactory to create an XMLStreamReader, which reads XML in from a database.
    The problem is that when it encounters & entities, it is replacing them simply with &. When I then go to transform the XML with an XSL stylesheet, it fails with a parser error due to the presence of unescaped & characters.
    Looking at the API documentation, I thought that setting the property javax.xml.stream.isReplacingEntityReferences to false would solve the problem, but it isn't. The line of code I am using is as follows: -
    inputFactory.setProperty("javax.xml.stream.isReplacingEntityReferences", new Boolean(false));
    Any further ideas as to what I am doing wrong or what else I should be doing?
    Many thanks for reading and considering my post.
    Kind Regards
    Jon

    Thanks for your continued posts guys...
    Quote from DrClap: "So if you consider this to be a problem, you are most likely misunderstanding. Or is there a reason why you feel you have to know how the text was represented in the document it came from?"
    Right, just to clarify, this is what I'm trying to do...
    1. XML, complete with properly escaped characters (&, etc) is sitting in the database.
    2. Next, I am attempting to read the XML into memory character for character via an XMLInputStream and so I still want &, etc, not just &.
    3. Finally, I apply stylesheet to XML Now I do want the parser to decode the & into &. The problem is that it has already been done in 2 (above) so the parser in 3 falls over.
    Thanks for pointing out that javax.xml.stream.XMLInputFactory is not a standard class DrClap - looks like it's back to the drawing board for me!!
    Thanks
    Jon

  • Having a problem with commandButton attribute when i am using it under tabl

    Having a problem with {color:#800000}commandButton {color}{color:#339966}attribute {color}when i am using it under{color:#ff0000} table{color}
    I am using a command button under a table.
    here is the example
    <h:dataTable value="#{wlmHandler.plexes.plexes}" var="{color:#ff0000}onePlex{color}" border="0" cellspacing="0" cellpadding="0" width="100%" border="0">
    <h:column>
    <h:panelGrid border="0" cellpadding="0" cellspacing="0" columns="5">
    <h:commandButton action="" styleClass="tixbutton" value="#{labels.ADD}" onclick="#{onePlex.tran}"/>
    <f:verbatim> </f:verbatim>
    <h:commandButton action="#{createTransaction.transactionCommand}" styleClass="tixbutton"
    value="#{labels.SUBMIT}" actionListener="#{createTransaction.processAction}">
    <f:attribute name="dbName" value="#{wlmHandler.dbName}"/>
    <f:attribute name="plexName" value="{color:#ff9900}#{onePlex.name}"{color}/>
    </h:commandButton>
    </h:panelGrid>
    <h:/column>
    </h:dataTable >
    when i am using this plex name atribute it is giving nullPointerException
    {color:#ff9900}this value #{onePlex.name} i cant able to access inside the command button{color}

    balu i have tried by seeing u r blog.
    this is my structure of tables
    plexes (if i iterate plexes table gives plex object)
    |
    ------ plex (plex table gives transaction object)
    |
    ------transactions(transactions table gives transaction table)
    |
    here i will have a command link to this link i have to pass the plex name which
    will come from
    i tried in this command action with HTMLDataTable getRowData()
    i am not getting the selected row data .i am downcasting this getRowData() to plex.

  • Problem with rendered attribute in jhs 10.1.3.3

    We are currently trying to migrate our applications from jhs 10.1.3.2.52 to jhs 10.1.3.3.87 using jdeveloper 10.1.3.5. We are facing a problem with all the detail groups structured inside detail group regions - they have all disappear from the pages.
    In my example code i have two master-detail groups Products (Master) and ExpertiseAreas (Detail) on the same page:
    Products - Group
    -> ExpertiseAreasDtl - Detail Group Region
         -> ExpertiseAreas - Group (Samepage="true")
    The problem is that the detail group ExpertiseAreas is not rendered on the page.
    As i looked in through the pages generated by the 2 different releases of jhs using the same app definition, i can see the following:
    CODE GENERATED FOR THE ExpertiseAreasDtl Detail Group Region (all the vms used are the default):
    in jhs10.1.3.3.87:
    <af:panelGroup *rendered="#{(ProductsIterator.currentRow!=null and ProductsIterator.findMode!='true')}"* id="ProductsRegionsExpertiseAreasDtlPanelGroup">
    in *jhs 10.1.3.2. 52*:
    <af:panelGroup id="ProductsRegionsExpertiseAreasDtlPanelGroup">
    First of all a rendered attribute is being generated in the new version of jhs and not in the old.
    The real problem seems to be with the iterator binding generated from verticalRegionContainer.vm in the regular expression: "#{(ProductsIterator.currentRow!=null and ProductsIterator.findMode!='true')}". It should have been *bindings.*ProductsIterator and not plain ProductsIterator. Has anybody got any ideas on how to solve the problem?
    Thanks
    Giorgos
    Edited by: user647567 on 17 Δεκ 2009 2:16 πμ
    Edited by: user647567 on 17 Δεκ 2009 5:58 πμ

    Giorgos,
    We have uploaded a new service update, 10.1.3.3.88, on the cso.oracle.com site. This should fix your issue.
    Steven Davelaar,
    JHeadstart Team.

  • Problem with keeping attributes updated

    We have a problem with the server model in Designer.
    We have made a E/R diagram and genereted it to a server model diagram. Afterwards we want to delete some attributes which we delete back in the E/R program. Then we make some new attributes instead and generate a new server model diagram but the attributes which we have deleted in the E/R diagram is still present in the new server model diagram. The new attributes are there too. It is like the server model diagram only updates the new attributes, but doesn't delete the old, wrong, attributes.
    What can we do to solve the problem?

    Hi,
    DDT will modify the attributes values (datatype, size etc.) on the target tables.
    DDT doesn't drop the column if its corresponding attribute is deleted in ERD.
    However we can achieve this by deleting the table definition from DE and then executing the DDT on the new/modified Entity.
    Regards,
    Wilson.

Maybe you are looking for