Updating XML Payload on the Bus

Hello,
I'm looking for the best solution for a particular problem. Any guidance would be appreciated.
I have the following payloads in a proxy service
$a=
<Message>
    <order>
        <orderId>1</orderId>
        <someValue>A</someValue>
    </order>
    <order>
        <orderId>2</orderId>
        <someValue>B</someValue>
    </order>
<Message> $b=
<Message>
    <someCalc>
        <orderId>1</orderId>
        <newValue>C</newValue>
    </someCalc>
    <someCalc>
        <orderId>2</orderId>
        <newValue>D</newValue>
    </someCalc>
<Message> I now want to use newValue from $b to update someValue in $a. I considered using the for loop and replace action like this:
ESBFor $someCalc in $b/someCalc {
    Replace $a/order[orderId=$someCalc/orderId]/someValue with <someValue>{fn:data($someCalc/newValue)}</someValue>
}The problem is that the Xpath seems to not have insight into variables so the [orderId=$someCalc/orderId] wont work.
The obvious solution is to have your business service pass in $a, modify that document and pass back a $a, but this might be overhead when using legacy services.
It'd be nice if XQuery had update syntax (I think there's a proposal out their for this) or if you could use a dynamic scripting language like Jython on Groovy to modify the variables.
Is there something I haven't thought of?

Hi,
As you can see mapping is because of Mapping , Exception During Execute come because of mapping error. So if you doing some graphical mapping there as you said you are concatenating some values passed from SAP R/3 in mapping , check it. Rather you can also check your mapping is right ot wrong using Test tab in mapping editor. also you can use Interface mapping for testing your whole scenario, i will prefer Interface Mapping thing to test my scenario as it will tell you if your requeswt mapping is correct or response message is correct.
Lets check there and you will see exact problem of mapping.
Regards
Aashish Sinha

Similar Messages

  • How to update XML file from the program

    i am new in abap , and i have the following issue,so plz anyone who knows how to do it
    Background :
    An XML file is used as the datasource for a Flex Application. From time to time this requires updating with new staff details.
    i have already saved the xml file in the c drive with the name C:\AdvAC\AC1\bin-debug\assets\staff
    Requirement :  Write a Dialog transaction with the following text input fields.
    Reference Indicator.     (Char10)
    Staff No          (NUMC, Length 5)
    Name               (Char50)
    Room               (Numc, length 3)
    Phone               (Numc Length 7)
    Mail               (char30)
    in screen 100
    The transaction should also have an u201CUpdate Fileu201D button, which when pressed :
    1) Loads the file C:\AdvAC\AC1\bin-debug\assets \ into an ITAB.
    2) Inserts the data into the ITAB using the following XML format.
    <staff>
    <ref_ind> Reference Indicator.</ref_ind>
    <staff_no> Staff No </staff_no>
    <name> Name </name>
    <room> Room </room>
    <phone> Phone </phone>
    <mail> Mail </mail>
    </staff>
    all should be inside  <allstaff> </allstaff> tagsu2026.
    Writes the ITAB back to the file.
    thanx all

    this is what i have done but i dont know how to do the rest. i will apprecite any help from u.
    Edited by: man700s on Feb 16, 2010 6:58 AM
    REPORT  Z_XML_FILE_UPDATE.
    TYPES: BEGIN OF ts_staff,
             REF_IND(10)  TYPE c,
             Staff_No(5)  TYPE c,
             Name(50)     TYPE c,
             Room(3)      Type n,
             Phone(7)     Type n,
             Mail(30)     Type c,
           END OF ts_staff.
    DATA: t_staff TYPE TABLE OF ts_staff WITH HEADER LINE.
    DATA: w_staff Type ts_staff.
    DATA T_STRING TYPE TABLE OF STRING.
    DATA W_STRING TYPE STRING.
    call SCREEN 100.
    PERFORM upload_xml_file.
    PERFORM update_xml_tab.
    *PERFORM download_xml_file.
    MODULE USER_COMMAND_0100 INPUT.
    W_STRING = '<allstaff>'.
      APPEND w_string to t_string.
      loop at t_staff into w_staff.
      w_string ='<staff>'.
      APPEND w_string to t_string.
      if T_staff-Ref_Ind = 'X'.
      CONCATENATE '<Ref_Ind>' w_staff-Ref_Ind '</Ref_Ind>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
      if T_staff-staff_no = 'X'.
      CONCATENATE '<staff_no>' w_staff-staff_no '</staff_no>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
      if T_staff-name = 'X'.
      CONCATENATE '<name>' w_staff-name '</name>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
    if T_staff-room = 'X'.
      CONCATENATE '<room>' w_staff-room '</room>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
      if T_staff-phone = 'X'.
      CONCATENATE '<phone>' w_staff-phone '</phone>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
      if T_staff-mail = 'X'.
      CONCATENATE '<mail>' w_staff-mail '</mail>' into w_string.
      APPEND w_string to t_string.
      ENDIF.
      w_string = '</staff>'.
      append w_string to t_string.
    ENDLOOP.
      W_STRING = '</allstaff>'.
      APPEND w_string to t_string.
    ENDMODULE.               
    Edited by: man700s on Feb 16, 2010 7:01 AM

  • Send updated xml file to the client with out any request

    hi,
    I am showing the data in the form of a table ,where the data are taken from a XML file. If i change the content of that XML file, the server should send the updated data to that client page, that means the client page should get refreshed automatically when there is a change in that XML file. I dont have any idea to implement this requirement.This is very urgent. Any suggestion would be appreciated. Already i have referred www.pushlets.com but that is not so clear. so pls............
    With regards
    Parameswaran

    The client is not supposed to know the server. You will need to have a periodic refresh. :)

  • Passing the XML payload to the cursor in the Oracle Database

    Hi Experts,
                      I am trying to insert multiple records in the table of oracle database. I am sending 5000 records per message. I am using a stored procedure to insert the records. I want to make a single call to the stored procedure and insert all the records.
    I dont want to call SP for each record.
    Please suggest the way to implement this (Using Cursor/Loop) .
    Thanks
    Ajay

    Hi
    Use these link to insert multiple record in single call using stored procedure.
    http://www.vikramlakhotia.com/Inserting_multiple_records_using_one_stored_procedure.aspx
    http://weblogs.sqlteam.com/travisl/archive/2005/01/04/3931.aspx
    use this thread
    http://forums.asp.net/t/1235809.aspx

  • HTTPService not reading updated xml, i've been having to refresh the xml in my browser manually

    I am calling an HTTPService (id=data2php) which runs a php
    script which creates an xml doc and puts it on my server. i then
    call another HTTPService (id=feedRequest) which reads the xml doc.
    i then try to populate a datagrid with the lastResult of my
    HTTPService that reads the xml doc. My issue is that that the
    HTTPService which reads the xml doc reads the previous incarnation
    of the xml doc, not the newly created one that my HTTPService
    (data2php) created. i've been manually going to the xml doc in my
    browser and hitting refresh for my feedRequest HTTPService to read
    the updated xml.
    here is the mxml for the httpservice that reads the xml:
    <mx:HTTPService id="feedRequest" url="
    http://cfcdi.org/eric/dashboard/php/sales.xml"
    result="feedResult(event)" resultFormat="xml" useProxy="false"/>
    pretty straight forward.
    (actually, once in a while it will read the updated
    one)

    LittleMuscle,
    Instead of binding to the lastResult property, I would
    explicitly handle the result and fault events of the HTTPService
    (the one that reads the newly created xml doc) and then manually
    update an XMLListCollection for use as the datagrid's dp. That way,
    you can at least walk through the debugger and see what's going on,
    and force the second HTTPService to read only when you're sure the
    newly created doc is ready.
    Since you said it works sometimes and not other times, it
    sounds like it's just a timing problem, sometimes the xml doc is
    created quickly enough that the HTTPService grabs the new xml doc,
    but if not, it's grabbing the old one. That would be my
    guess.

  • Namespace in XML Payload for HTTP Sender

    Hello,
    I have just configured my snychronous HTTP <--> RFC Scenario. When I want to test it with some XML payload in the HTTP testing tool I get a mapping runtime exception.
    After some investigation using the test tab in the message mapping I realized that missing namespace in the XML payload caused the error. I tried to add manually a namespace to the XML and then it worked
    This is very strange I though that the namespace of the sender interface is automatically added to the XML payload?
    Do you have any information on this?

    Hi,
    U need to copy the payload from Message mapping test message tab and use that payload.
    or u can use the HTTP test client for testing the same.
    sample HTML code to create HTTP Client:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/66dadc6e-0a01-0010-9ea9-bb6d8ca48cc8
    You can also use the Wfetch application by Microsift for the same..
    download the same from below link
    http://www.iisfaq.com/Default.aspx?tabid=2975
    Thnx
    Chirag

  • XML Payload extraction from XI Message

    Hi to all,
    I use the SXI_MONITOR transaction to see the XML Payload of XI Messages. In this transaction, each successfully message has a field "MainDocument" under "Response" section that contains the XML Payload of the message.
    <B>There is a function module that I can use to extract the XML from MainDocument field?</B> I've tryed to look into SXMSCLUP and SXMSCLUR abap data tables but here I founded only the SOAP Header and SOAP Body data of the message. Here I can't see the "Payloads" data, so the MainDocument tag.
    Can anyone help me?
    Thanks!

    Ciao Gabriele,
    there are differente way to do it.
    one time I got same issue and I got some answer on the community.
    Unfortunately there was no more need for it so i did not implement but
    easily speaking in all the mapping got the payload therefore u need just to create a full mapping adn to process the data u get.
    In java for example is given as input stream that u can store some where and process.
    I pasted the result below:
    IN java
    How to get the whole payload
    in abap
    /people/udo.martens/blog/2006/02/16/own-logging-of-xi-messages
    please rewars point is useful thanks.
    regards,
    Giamma

  • XML payload in RESTful webservice

    Hi all,
    Can anyone please suggest on how to call the RESTful webservice (which is used by our client) by passing an XML payload from a PL SQL stored procedure? It is for the authentication purpose. And the username and password has to be passed as the XML payload to the RESTful webservice . Please help, it's a bit urgent.
    Thanks in advance
    Geethu
    Edited by: 982489 on Mar 22, 2013 3:02 AM

    Hi all,
    Can anyone please suggest on how to call the RESTful webservice (which is used by our client) by passing an XML payload from a PL SQL stored procedure? It is for the authentication purpose. And the username and password has to be passed as the XML payload to the RESTful webservice . Please help, it's a bit urgent.
    Thanks in advance
    Geethu
    Edited by: 982489 on Mar 22, 2013 3:02 AM

  • How to update XML Facts in rule author

    Hi,
    since there is not a separate forum for the rules engine and this is tightly related to BPEL, so I thought I'd post the question here.
    what's the process to update XML Facts in the rule author and the BPEL process that is already using the rule repository for decisions?
    for example, if I change the data type on one of the elements in the XML Facts schema from string to int, what do I do next to put such change into the existing rule repository and update the BPEL side of things?
    I have tried re-importing the updated XSD into the rule repository (it's a WebDAV repository), I can see the change in the new definitions for the xsd, and I can also make use of the change to define new rules, in the words, the rule author side seems fine;
    then I copied the updated xsd into my BPEL project that calls the rules engine, and then what should I do next? I can't see any where in jDeveloper I can "update" the decision service partner link, so I just re-deployed the BPEL process with the updated xsd under the rule/xsd folder, but then the same call to the decision service starts failing with a "business exception, cx-fault-actor" but without any more details.
    I haven't added any new rules, only change of data type on one element.
    what am I missing?
    thanks.

    In ALDSP 2.5 (and ALDSP 3.0), non-XA data sources can be updated without writing an update-override. But if you want to do any special processing that is not handled by the default behaviour, or for data services not based on relational databases, in ALDSP 2.5, you can write an update-override.
    In ALDSP 3.0, the update model is somewhat different, I suggest that you peruse the ALDSP 3.0 documentation for a thorough discussion. The documentation is here http://edocs.bea.com/aldsp/docs30/index.html I suggest start with a search on 'update'.
    In ALDSP 3.0, I believe updateoverride feature still exists for the purpose of backwards compatibility (at least it turned up in a search of updateoverride in the 3.0 docs)

  • Validating XML Payload

    Hi,
    I have written a document/literal style web service that takes DOM Document as input and returns a DOM Document .
    In doc/lit style web services the DOM document will be opened and passed as XML payload in the request message.
    I want to validate this xml payload in the wsdl.
    Any ideas about how i can do this?
    Karan

    either, or, or download some freebee.

  • Error importing sample/update.xml when upgrading IDM5.0 to IDM5.0 SP4

    Hellos,
    I fail to upgrade to SP4 on the last step, importing the update.xml file.
    The Browser window has in red text:
    "An error occurred importing the file, although some of the file data may have been processed. ==> com.waveset.util.InternalError: Class com.waveset.view.ViewUpdater not found."
    I see in a text box many lines.. refreshing 0 of 2 etc..
    last line says Found no instances of AdminRole, not suprising as it a first time install.
    My system is Solaris 9 with MySQL 4.0.24 as repository (need 4.0.24 as we MUST HAVE EXTENDED ASCII CHARACTER SUPPORT, 4.1.x is no good) and SunApplicationServer8 as AS.
    The IDM5.0 install and deploy was fine. The upgrade was going fine too until last step.
    I upgrade by following the steps in IDM5.0_SP4_REAME.pdf.
    What is unclear is whether with Sun AS8 I need to undeploy idm and rebuild idm.war after installing the SP4. The instructions assume we all use tomcat and windows.
    I simply ran ./install, started the AS and tried to import
    sample/upgrade.xml. I did NOT undeploy idm, jar it up again and redeploy it.
    Anyways.. what I guess my IDM is now FUBR any hints how to recover?

    I prefer to perform manual upgrades in which there is a staging directory (see the installation document) where you unjar the idm.war and make all the necessary changes and then jar it and redeploy. I have uses the same process for successful upgrade for WebsphereAS 5.0 and it worked great. I have heard others talking about similar issues because it seems the jar files are not upgraded in the process that you have used.

  • AIA 11gR1 Mail Message with an XML payload

    Hi,
    I'm currently facing an issue related to message payload which is itself a XML fragment.
    Use case: The business requires some error out record to notify to the Business users as an XML payload in the mail message body whichis generated in the process flow.
    Reported Issue: The default MIME TYPE with text/html is unable to send the XML payload in body part. I get a blank message body in the mail.
    Any useful thoughts is welcome.
    Regards
    Soumya

    Which version are you using? I also had problems with XML as the payload with 9i Rel. 1. I upgraded to Rel. 2 and it works o.k.

  • Form or form on report to update XML tagS stored in CLOB field.

    I would like to create a form or a form on a report
    where i can update xml tags. The xml data is stored in a CLOB field.
    sample CLOB DATA
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>
    <preferences EXTERNAL_XML_VERSION="1.0">
    <root type="user">
    <map />
    <node name="com">
    <map />
    <node name="mynode">
    <map />
    <node name="utils">
    <map />
    <node name="properties">
    <map>
    <entry key="Save" value="ON" />
    <entry key="TM_PORT" value="55555" />
    <entry key="TM_PORT2" value="7777" />
    <entry key="SubID" value="all" />
    <entry key="UserDBUsr" value="myuser" />
    <entry key="JMS_JDBC" value="OFF" />
    <entry key="Side" value="BUY" />
    <entry key="HEALTH_MONITOR_CRITICAL_DISK_SPACE" value="500" />
    <entry key="HEALTH_MONITOR_WARNING_DISK_SPACE" value="750" />
    <entry key="HEALTH_MONITOR_PERIOD" value="600000" />
    </map>
    </node>
    </node>
    </node>
    </node>
    </root>
    </preferences>
    the goal is to have a form where i can view and update the "value" of following:
    TM_PORT
    TM_PORT2
    SubID
    UserDBUsr
    JMS_JDBC
    Side
    HEALTH_MONITOR_CRITICAL_DISK_SPACE
    HEALTH_MONITOR_WARNING_DISK_SPACE
    HEALTH_MONITOR_PERIOD
    I have searched around this forum but could not find an example.
    it would be cool if I could also load the an xml file into the clob.
    Thank you.

    Hi,
    I think you just study first the topics about XML DB to understand how to manupulate xml data in the database.
    See:
    http://www.oracle.com/technology/tech/xml/xmldb/index.html
    and
    XML DB
    Regards,
    Cafer

  • Help on how to read the content of an XML file from the payload

    I have a receiver channel / mail adapter, that sends e-mails with a XML attachment.
    I’m trying to write a Bean, that should make it possible to rename the attached XML file dynamically.
    In the Bean I want to read the content of the attached XML file, it could be the “order number”.
    The filename should then be “Order number”.XML.
    <u><i>Can anyone help me with how to read the content of the XML file from the payload.</i></u>
    <i><b>Frank</b></i>

    hi,
    check this: http://jakarta.apache.org/poi/

  • In PI how do I convert the XML payload (input) to a text file and send out

    I am extracting data from SAP and sending thru XI / PI to a file (non-sap system).
    On the receiving end, I need the file to be a text file, with one row for each "FTZ_Row concatenated_data" tag in the input.  It needs to be just a plain text file with no XML tags.
    Currently the file gets one record which matches exactly to the XML payload below.
    I want it to create a file that looks like this :
               CONCATENATED DATA 1
               CONCATENATED DATA 2
                012345678912345678MAKTX-TEST LB 123123123123 01/02/2009 Z001WCHA9876543210.12
    here is the payload going thru XI
      <?xml version="1.0" encoding="utf-8" ?>
    - <n0:FTZ_Concatenated_Row xmlns:n0="http://intel.com/xi/INTEL_PROCUREMENT/ForeignTradeZone" xmlns:prx="urn:sap.com:proxy:FI0:/1SAI/TAS0C0412CDBC3E782D0219:700:2008/06/25">
      <FTZ_Row concatenated_data="CONCATENATED DATA 1" />
      <FTZ_Row concatenated_data="CONCATENATED DATA 2" />
      <FTZ_Row concatenated_data="012345678912345678MAKTX-TEST LB 123123123123 01/02/2009 Z001WCHA9876543210.12" />
      </n0:FTZ_Concatenated_Row>
    thanks
    jay

    thanks for the input but I am still having issues - I get an empty file when I use the content conversion option.
    My payload coming into XI is :
            <?xml version="1.0" encoding="utf-8" ?>
    - <n0:FTZ_Concatenated_Row xmlns:n0="http://intel.com/xi/INTEL_PROCUREMENT/ForeignTradeZone" xmlns:prx="urn:sap.com:proxy:FI0:/1SAI/TAS0C0412CDBC3E782D0219:700:2008/06/25">
    <FTZ_Row concatenated_data="CONCATENATED DATA 1" />
    <FTZ_Row concatenated_data="CONCATENATED DATA 2" />
    <FTZ_Row concatenated_data="012345678912345678MAKTX-TEST LB 123123123123 01/02/2009 Z001WCHA9876543210.12" />
    </n0:FTZ_Concatenated_Row>
    Here is the layout of my data type - I am using the same for input & output
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://intel.com/xi/INTEL_PROCUREMENT/ForeignTradeZone" targetNamespace="http://intel.com/xi/INTEL_PROCUREMENT/ForeignTradeZone">
       <xsd:complexType name="FTZ_Concatenated_Row">
          <xsd:sequence>
             <xsd:element name="FTZ_Row" maxOccurs="unbounded">
                <xsd:complexType>
                   <xsd:attribute name="concatenated_data" type="xsd:string" />
                </xsd:complexType>
             </xsd:element>
          </xsd:sequence>
       </xsd:complexType>
    </xsd:schema>
    I mapped these items :  FTZ_Concatenated_Row & FTZ_Row & concatenated_data
    I set up my content convesion with :
      recordset structure   FTZ_Row
    FTZ_Row.fieldSeparator     #
    FTZ_Row.endSeparator     'nl'
    I am not sure why the following row looks like this ??
        <FTZ_Row concatenated_data="CONCATENATED DATA 1" />
    I thought FTZ_Row would be one tag and "concatenated_data" would be another one.
    any help would be appreciated.
    I have read many entries/blogs/etc in SDN but and tried many different setups, but nothing is working.
    thanks

Maybe you are looking for

  • Best way to manage podcasts?

    Before apple decided to bring back the podcast app it was in-bedded in to itunes and it worked (half the time) but now there is a podcast app it just doesn't work with itunes properly. I was happy with having my PC download everything and then sync i

  • What is the best DVD burner to buy for use with my Mac?

    I have a MacMini with a DVD player/CD burner. I would like to buy an external DVD burner for use with the MacMini and my Tiger OS. Could I get some thoughts on purchasing a good external burner and using the best burning program with it. Thanks

  • CL_SALV_TREE PopUp

    Hello! Is ther any way to show a alv tree of CL_SALV_TREE in a popup window? When I call a screen by "_CALL SCREEN 0120 STARTING AT 20 20 ENDING AT 100 100._" the screen appears blank! But when I call it "_CALL SCREEN 0120_" the alv is shown correctl

  • How to change other Voice Over settings?

    I have a MacBook Pro retina (13 inch) and im getting REALLY irritated with my Voice Over settings. I want the thing to say the number name for nubers and not each individual digit. It says "one" and "zero" instead of "ten"!! How in the world do you e

  • WSDL2Java exceptions

    Hi All, I'm having a problem with WSDL2Java programs that come with AXIS. I have installed axis, setup classpaths, got to my AXIS_HOME directory and tried to run WSDL2Java but get Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/