OSB get the untouched soap header  / body

Hi
I have usecase where I need to pass xml signature messages through the OSB. When I create a passthrough proxy and business service without a assign or other operation then the soap message is passed through and the message is valid.
When I try to get the header and body of the soap message and put this in canonical message and serialize the header and body. then transports this to a other osb server where I try to reconstruct the original message then it fails.
it looks like when I try to get the $header and $body variable the OSB adds some namespaces to it and changes the message a little bit. Is there a way to get the original header and body.
thanks Edwin

Check this blog: /people/william.li/blog/2009/07/30/how-to-read-soap-header-information
Make sure that your message structure is defined properly so that it even includes the header fields...otherwise it will throw an error....once you get the value in the field then transfer it as you like using the mapping.
From the above blog:
The SOAP sender communication channel gives us an option to send the complete SOAP XML, including the header. Then, we just
need to construct a message type in the Enterprise Service Repository (ESR) or Integration Repository (IR) to represent the XML.
With that, message mapping can be performed.
Regards,
Abhishek.

Similar Messages

  • How to get the Change Document Header details for a given date

    Hi All,
    Can anyone help me on this Change Document Header details(CDHDR).
    Better way to pull the information of Change Document Header details(CDHDR). No Index is maintained for the tables.
    So please suggest better Optimising techniques to get the Change Document Header details(CDHDR).
    Using this Function module : CHANGEDOCUMENT_READ_HEADERS how to import the DATE_OF_CHANGE.
    Thanks in advance
    Regards
    Chakri

    HI,
    Go through the documenattion of the FM u can get the details.. and also where used list
    Regards,
    Nagaraj

  • How to get the dynamic Crosstab header name ?

    Hi ,
    The crosstab resaults shows as below ,How to get the dynamic Crosstab header name ?
    | Countryname |
    | Province1 | Province2 |
    | here to get CountryName | here to get CountryName |
    how to get the Countryname in data ceil?
    thanks

    Could you please elaborate on your requirement?
    You want header to be dynamic?

  • How can I get SessionID from SOAP Header in MessageMapping

    Hello experts,
    I've got a Abap Proxy --> PI --> WebService scenario. I do the call to the web service and it returns me the data and a SessionID in the SOAP header. I've got a message mapping for the response, and in this message mapping I need to get this sessionID because I have to use it later.
    I have tried with a UDF with this code:
    String headerField = "";
    try
      String key="SessionID";
      java.util.Map map;
      // get runtime constant map
      map = container.getTransformationParameters();
      // get value of header field by using variable key
      headerField = (String) map.get(key);
    catch(Exception e){}
    if(headerField==null)
        headerField = "";
    return headerField;
    But it returns me nothing.
    In sxmb_moni I can see the sessionID (see attached file), so It should be possible to access it.
    How can I do to get this data????
    Many thanks.

    Thanks Indrajit.
    I have found a solution. I have to use the option: Do Not Use SOAP Envelope in my communication channel.
    But as I am using web services I have to create the SOAP Envelope in my mapping (in request and in response).
    I have created 2 xslt mapping files: one for request and one for response. The xslt mapping for the request it is placed in second position in my operation mapping. This xslt maping just move the fields and add the soap envelope (header and body, and inside the body places the data from 1st mapping).
    The response xslt mapping it is placed directly in my operation mapping (in response area). It transforms the SOAP response into my Message Type.
    Here you can find my xslt for request (sessionID, in0, in1 and in2 are fields from my source message type):
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <SOAP:Envelope xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope">
          <SOAP:Header>
         <ses:sessionIDHeader xmlns:ses="http://xml.apache.org/axis/session">
                 <sessionID><xsl:value-of select="*/sessionID"/></sessionID>
             </ses:sessionIDHeader>
          </SOAP:Header>
          <SOAP:Body>
          <ser:invokeService xmlns:ser="http://www.w3.org/2003/05/soap-envelope">
             <in0><xsl:value-of select="*/in0"/></in0>
             <in1><xsl:value-of select="*/in1"/></in1>
             <in2><xsl:value-of select="*/in2"/></in2>
          </ser:invokeService>
          </SOAP:Body>
        </SOAP:Envelope>
      </xsl:template>
    </xsl:stylesheet>
    Here is xslt for response (invokeServiceReturn,sessionIDare fields from my target message type):
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <ns1:MT_invokeServiceResponse xmlns:ns1="http://saras.com/pi/creditoycaucion">
            <invokeServiceReturn><xsl:value-of select="/*/*/*/invokeServiceReturn"/></invokeServiceReturn>
            <sessionID><xsl:value-of select="*/*/*/sessionID"/></sessionID>
        </ns1:MT_invokeServiceResponse>
      </xsl:template>
    </xsl:stylesheet>
    Kind Regards.

  • How to get data from SOAP-Header/MAIN-Section?

    Hi,
    I need some data of the SOAP-Header-MAIN-Section, e.g. <SAP:Sender><SAP:SERVICE>
    Is it possible to get these data with XSLT-Mapping or Java-Mapping? Are there blogs about it?
    I need these data of the MAIN-Section inside the condition of the receiver determination.
    Thank you all.
    Regards
    Wolfgang

    Hi,
    Do you wnat to access the Sender Service details in your mapping using java or XSL mapping? this is possible.
    Check this link,
    http://help.sap.com/saphelp_nw04/helpdata/en/43/09b16006526e72e10000000a422035/content.htm
    Or do you want to access the SOAP header itself?
    Regards,
    bhavesh

  • OSB Delete Entire Node (SOAP:header) in Proxy service

    Hi
    I am wanting to delete the SOAP:header node in the response in the SOAP proxy service.
    I am using the Delete action with the following settings
    Xpath: .
    In Variable: header
    All this is doing is deleting the contents of the "Header" node when I want to Delete the entire node.
    What am I doing wrong?
    Thanks in advance
    Edited by: cool.br33ze on 05-Feb-2013 01:40

    The reason for why I need to get rid of the SOAP:header is because the consuming application, SAP, is unable to handle a SOAP:header.If the consuming application is a SOAP client then there is no reason why it cannot handle it. If consuming application is not a SOAP client then better change the type of your proxy service to Any XML service or Messaging Type Service (with request and response type as XML)
    Regards,
    Anuj

  • Get data from SOAP Header in udf

    Hi,
    I want to get value of a SOAP header Runtime Field and use it in udf.
    The field I need is <SAP:EOReferenceInbound type="TID">. I think I need to use function getTransformationParameters() but I don't know how to use it.
    Can you help me to retrieve this value of SOAP Header in a mapping ?
    Thank you.

    Check this blog: /people/william.li/blog/2009/07/30/how-to-read-soap-header-information
    Make sure that your message structure is defined properly so that it even includes the header fields...otherwise it will throw an error....once you get the value in the field then transfer it as you like using the mapping.
    From the above blog:
    The SOAP sender communication channel gives us an option to send the complete SOAP XML, including the header. Then, we just
    need to construct a message type in the Enterprise Service Repository (ESR) or Integration Repository (IR) to represent the XML.
    With that, message mapping can be performed.
    Regards,
    Abhishek.

  • How to get the dynamic Crosstab header Title

    Hi,
    my sql show as below
    select country,province, month, income from salestable
    As above content ,I build a crosstab ,use the month as left column,use "country" as level 1 header column ,use province as level2 header column,use income as summary value
    now ,in the income ceil, I want to get the current dynamic country title value
    How can i do to get it ?
    thanks a lot !!

    Use the
    <?./H?> in the new form-field inside the for-each <?for-each@cell:.//R1C1?>.
    You should be able to see the corresponding header value displayed

  • BAPI_SALESORDER_SIMULATE How to get the conditions on header level?

    Hi,
    is it possible to get the pricing conditions on header level (sales order) with the Bapi BAPI_SALESORDER_SIMULATE?
    We only found the information on item level?
    Thanks a lot.

    hope its possible,
    If don't specify any item no for condition type in bapi, then it will be consider as header condition.
    make sure condition should be header condition.
    hope it will work.
    Regards,
    Marreddy

  • How to get the  total SOAP XI message as output in file?

    Hi all,
    i had done a scenario Mail - XI -File . if i used XIPAYLOAD and check mail package then the file adapter gives the output in ximail30.xsd format. I want the whole SOAP XI messages and also the internal message which we can see in url
    http://server:port/MessagingSystem/ as output in the text file.
    how can we configure mail adapter to give SOAP XI messages and also the internal message as output in the text file.
    Anyone have a idea to solve this please help me.

    Use the TCP gateway if you want this for monitoring,
    /people/stefan.grube/blog/2007/03/29/troubleshooting-soap-http-and-mail-adapter-scenarios-with-tcpgateway
    Regards
    Bhavesh

  • How to get information from SOAP header in weblogic without handlers

    I need to retrieve information from SOAP header without handlers.
    Any ideas how to do that?

    Just wondering if Filter can be used here, though I never tried that.

  • How to get the user entered  header text on a delivery

    Hi All,
    I am looking for a internal table which holds the user entered text in header text of the delivery. I was able to find header data in XTHEAD table. But actual lines(entered text)  in which structure it holds. I checked TLINETAB but its empty.
    My requirement is to check the user enterd text to validate at userexi_save .
    Any help will be appreciated
    Thanks
    Sai.

    Hi all,
    Thanks for ur replies.
    I already tried READ_TEXT. but its not giving the current value.
    check the following code:
            CLEAR lv_valid.
            READ TABLE catalog
                  INTO ls_catalog
                  WITH KEY tdobject = c_vbbk1
                             tdname = likp-vbeln
                               tdid = c_z043.
            IF sy-subrc = 0.
              CHECK ls_catalog-function NE 'D'.
              CALL FUNCTION 'READ_TEXT'
                EXPORTING
                  id                      = ls_catalog-tdid
                  language                = ls_catalog-tdspras
                  name                    = ls_catalog-tdname
                  object                  = ls_catalog-tdobject
                TABLES
                  lines                   = lt_tline
                EXCEPTIONS
                  id                      = 1
                  language                = 2
                  name                    = 3
                  not_found               = 4
                  object                  = 5
                  reference_check         = 6
                  wrong_access_to_archive = 7
                  OTHERS                  = 8.
              IF sy-subrc = 0.
                CLEAR lv_valid.
                READ TABLE lt_tline INTO ls_tline INDEX 1.
                CALL METHOD z2cl_utilities=>is_valid_text
                  EXPORTING
                    p_text  = ls_tline-tdline
                  IMPORTING
                    p_text1 = lv_text1
                    p_text2 = lv_text2
                    p_valid = lv_valid.
                IF lv_valid IS  INITIAL.
                  MESSAGE e504(z2vl) WITH lv_text1 lv_text2.
                ENDIF.

  • How to Capture Runtime SOAP Header in ABAP Webservice

    Hi All,
    I have created a WebService from a ABAP Function Module, and an external (Java Based) system is able consume to it. But while making the call, the external System enriches the SOAP header with certain values, and I need to capture these values in ABAP Function Module.
    How can read the enriched SOAP Header in my ABAP Function Module? is there any Class/Function Module which I can call to get the Runtime SOAP-HEADER or is the runtime SOAP-header available in one of the structures similar to SYST?
    Thanks,
    Ganesh

    Hi Ganesh,
    Please go through this link.
    http://www.sapag.co.in/SAP-XI-SOAP-Adapter-FAQ'S.html
    I think this would be helpful for you..
    Reward points if useful,
    Swamy Kunche

  • "SOAP header Action was not understood."

    Guys ,
    I am trying to get the UserProfile Details from a SharePoint Server that is configured to use https and NTLM authentication. I am doing this within a Windows Form Application on MS Visual Studio 2010.
    I am using the following custom binding:
    <customBinding>
    <binding name="Service1Binding">
    <transactionFlow />
    <textMessageEncoding />
    <httpsTransport authenticationScheme="Ntlm" />
    </binding>
    </customBinding>
    And as for the end point it is:
    <client>
    <endpoint address="https://<ServerLocation>/userprofileservice.asmx"
    binding="customBinding" bindingConfiguration="Service1Binding"
    contract="UserProfileService.UserProfileServiceSoap"/>
    </client>
    My code for making the connection is:
    UserProfileService.UserProfileServiceSoapClient client = new UserProfileService.UserProfileServiceSoapClient();
    client.ClientCredentials.UserName.UserName = "<UserName>";
    client.ClientCredentials.UserName.Password = "<Password>";
    client.GetUserProfileByName("<User name to serach for>");
    I keep getting the exception: "SOAP header Action was not understood"
    I am new to WCF and would appreviate if you could point me to the source of the problem.
    Thanks
    Jamil

    Hello, what SOAP version does the service use? Try to configure textMessageEncoding.messageVersion to either Soap11Addressing10 or Soap12Addressing10 to see if the problem is solved.Lante, shanaolanxing This posting is provided "AS IS" with no warranties, and confers no rights.
    Windows Azure Technical Forum Support Team Blog

  • How do I access the DCJMS* variables in my response SOAP:Header ?

    Hi all,
    I have set up a sync / async Integration Process in XI
    This is initiated by a SAP R/3 transaction that calls a synchronous function to enter XI
    Once in the Bridge, a JMS receiver adapter sends out an asynchronous request message from XI to MQ
    A correlation allows the JMS sender adapter to return an asynchronous response message from MQ to XI back into my the Integration Process
    I have set up the JMS sender adapter configuration to return the DC (dynamic configuration) variables in the <SOAP:Header> of the XI response message along with the payload
    You can see that the DCJMS* variables are returned below
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Response
      -->
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SOAP:Header>
    + <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
    + <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
    + <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
    + <SAP:RunTime xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    + <SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
      </SAP:DynamicConfiguration>
    - <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:TraceLevel>Information
    <b>Question</b>
    I want to access the DCJMS* variables but am not sure how to go about it as the
    variables exist in the <SOAP:Header>?
    I followed the SAP documentation to access adapter-specific attributes (refer to link http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm )
    I have used the following code to create a user-defined function for the accessing adapter specific attributes (similar to the link)
    public String Get_Msgid(Container container){
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
    (StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create
    ("http://sap.com/xi/XI/System/JMS","DCJMSMessageID");
    String jmsMsgID = conf.get(key);
    return jmsMsgID;
    <b>Question</b>
    Do I use message mapping to extract the DCJMS* variables?
    <b>Question</b>
    If so then which message is used for the source message so that I can access the <SOAP:Header>?  Eg do I use the response message type or is there a trick to accessing the SOAP:Header?
    <b>Question</b>
    Do I use the user-defined function (like above)?
    I performed the following steps
    •     Opened the message mapping in edit mode
    •     Created the user-defined function using the graphical editor
    •     Saved the message mapping
    •     I have not connected the user-defined function to any of the xml tags in either the source or target messages
    When I go to test the message mapping I am getting the following error
    Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
    STACKTRACE:
    com.sap.aii.ib.core.mapping.exec.ExecuteException: Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
    at  com.sap.aii.ib.server.mapping.exec.ServiceUtil.compileSourceCode(ServiceUtil.java:207)
    at com.sap.aii.ib.server.mapping.exec.ServiceUtil.compile(ServiceUtil.java:156)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCode(ServerMapService.java:361)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCodeWithoutAndWithArchives(ServerMapService.java:301)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:153)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
    at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
    at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
    at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    A thread in the SDN (Error while Activating Message Mapping, Posted: Jan 9, 2007 3:32 PM) suggests checking the java path on the XI machine
    This is JAVA_HOME=C:\j2sdk1.4.2_08 and seems ok
    <b>Question</b>
    Do you know why I would get the compilation error?
    Any assistance would be appreciated
    Regards,
    Mike

    Jin,
    My compilation issue has gone via a SAP recommendation to specify the JDK home directory in the instance profile
    Back to the mapping - I can now run my scenario
    <b>Source message</b>
    The response message has the following <SOAP:Header> from which I want to extract the DCJMSCorreleationID (note that it's misspelt)
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Response
      -->
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
      </SAP:DynamicConfiguration>
    <b>Grahpical mapping</b>
    LHS - Response message with occurrance 0..1 so it is not connected to my UDF
    UDF Get_Corrid with no inputs
    RHS - The UDF output is connected to the Acknowledgement msg tag <ACK>
    <b>UDF</b>
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
    (StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create
    ("http://sap.com/xi/XI/System/JMS","DCJMSCorreleationID");
    String Corrid = conf.get(key);
    return Corrid;
    <b>Target message</b>
    The idea is to copy the correlation id of the response message into the acknowledgement message.  But as you can see the result is NULL
      <?xml version="1.0" encoding="utf-8" ?>
    - <ns2:AWB0020_MARKET_DATA_RESPONSE_ACK xmlns:ns2="http://awb.com.au/mq/tx/MarketData">
      <ACK>null</ACK>
      </ns2:AWB0020_MARKET_DATA_RESPONSE_ACK>
    Please advise
    Thanks Mike

Maybe you are looking for

  • No Material Master replication from R/3 to CRM

    Hallo guys, i've got no replication of material master, haven't tried any other object except customizing but customizing is triggered from CRM and was replicated fine. Can anybody help me how can i debug the replication process from R/3? Thanks for

  • S-Video out with adaptor question,

    Hello all, I was hoping that someone might be able to give some advice. I recently got a new Sony HDTV and would like to run my monitor from the G5 to the Sony HDTV. I have an adaptor that will let me transition the monitor to S-video to run to the S

  • Message 16389 Not found

    I get this error on OO4O 8.1.7.3.15 on each data control error. It seems not to find the error entries. The error OIP-16389 is not explained in the Help (ORACLEO.hlp). Can anyone help me ? The full message is : OIP-16389: Message not found; product=O

  • Erratic synching iphone 4 and mac calendars

    sometimes it synchs all changes when iphone 4 connects to mac, sometimes won't make changes. Been into itunes changed everything possible there - no difference. Tried to find isynch in spotlight as I know you can change through preferences, couldn't

  • Access Airport Utility from Status Bar?

    Hello - is there any clever way to enable access of "Airport Utility" from the WIFI Icon in my status bar (top right toolbar)? The WIFI icon has option "open network preferences" but nothing to open Airport Utility. If I hold the option and click the