Passing data in SOAP Header

Hi,
   I'm trying to make a SOAP call. As part of the SOAP message, I need to pass a string called session id. This doesn't seem possible from the message type, which only represents the SOAP body schema. How do I handle the SOAP header data in XI?
Regards,
Harsh

Hi Udo,
   Thanks for the quick response. I'm trying to build the soap envelope manually. I imported this into the repository as an ED. But I'm not able to define use it in message mapping. Can you help me with this? I'm attaching the xml. Regards,
Harsh
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:element name="ABC">
<xsd:complexType>
    <xsd:sequence>
          <xsd:element name="soapenv:Header">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="urn:SessionID" type="xsd:string" />
                </xsd:sequence>
          </xsd:complexType>
       </xsd:element>
   </xsd:sequence>
   <xsd:sequence>
           <xsd:element name="soapenv:Body">
           <xsd:complexType>
               <xsd:sequence>
                    <xsd:element name="urn:getserverTimeStamp" type="xsd:string" />
               </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
   </xsd:sequence>
</xsd:complexType>
</xsd:element>
</types>
<message name="getServerTimestampRequest">
          <part element="urn:getServerTimestamp" name="parameters" />
     </message>
</xsd:schema>

Similar Messages

  • Passing Parameter through SOAP Header in ODIInvokeWebService

    How to pass parameters in SOAP Header in ODIInvokeWebService and not just in SOAP Body?
    Background:
    One of our web service provider expects certain parameters set in SOAP Header. Currently, ODIInvokeWebService allows to set parameters through SOAP (Request) Body and not through SOAP Header.
    How can we set and send parameters in SOAP Header when using ODIInvokeWebService. Can we set this in a request file. Any workaround?
    BTW is this a limitation in the tool. If yes, I am looking for a work around. I can setup a proxy service/servlet and re-route the request to the provider but I would like to know if there is a work that can be done easily through ODIInvokeWebService before I look for other options.
    Appreciate your help.
    Thank you.
    -Muthu

    Hi Muthu ,
    This is not supported by the ODIInvokeWS Tool.
    There are some ER logged against this and may be it will get implemented in ODI 11g
    Sutirtha

  • 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

  • Variable Data in soap header?

    Hi,
    I'm trying to get a variable called sessionID inserted into my soap header for an outbound call. So my soap header would look something like this:
    <soapenv:Header>
    <SessionHeader >
    <ns1:SessionID>varSessionID</ns1:SessionID>
    </SessionHeader>
    </soapenv:Header>
    Any suggestions how to implement this?

    This can be accomplished using the Input Header Variable assignment on the Invoke activity (adapters tab).

  • 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 change Data in SOAP Header

    Dear friends,
    We are facing a problem with IDOCs. We have a scenario where in we are sending IDOC from a logical system XXXCLNT040 to another one XYZCLNT004 using XI3.0 SP10.
    Now the problem is that we are simulating a situation wherein system XXXCLNT004 sends PORDCR1 idoc to XI and then XI send it to XYZCLTN004 which should return an acknowledgement to be sent to "just" XI and then to some third system not the original sender.
    Now, the problem is that we changed the mapping of the IDOC field SDNPRN to point to XI logicalsystem so that the receiver sees that message is sent from logical partner XI and not from XXXCLNT004 but when I check the idoc in we05 of the receiver side it still has partner XXXCLNT004 instead of XI and it seems that it takes it up from the SOAP message header data.
    Is there anyway we can manipulate this so that we can change/modify the sender logical partner information during runtime? or anyother suggestions.
    Thanks & Best Regards,
    Manish

    Hi Manish -
    You can't map the 6 sender and receiver control record fields (partner, port, and function) and have XI pick them up. See note 728792 for the fields that you can map. You can map them but they will be ignored even if you choose "Use control record values from payload". You need to use other methods. See note 792333 for the options.
    Also check out the document "How To Sample IDoc Scenarios within XI3.0" which is available in the How-To section for XI 3.0. This will give you a number of scenarios. Drink a lot of coffee before you read this document.
    This is definitely the most confusing part of XI IDoc processing so set aside some time to figure it out.

  • Passing authentication info in soap header

    We need to integrate a webservice in ALSB 2.6. This webservice needs authentication information (username and password) to be passed inside the soap header.
    I imported the wsdl into ALSB and created a business service on it. When I try to test one of the webservice's method using the test console, I am not sure how do I pass the authentication fields inside the soap header.
    Can anyone please provide some inputs.
    Regards,
    Rishi

    The best way to do that is to create an XML file and register it as an Xquery resource in ALSB. You can then access the Xquery file from your pipeline to update your message.
    An alternative way is to use th Xquery function "doc" to read files from the file system. However I discourage you to do that since this file will need to be present on your server and won't be managed by the config framework which is going to increase the maintenance burden.
    Gregory Haardt
    ALSB Prg. Manager
    [email protected]

  • HTTP 415 Unsupported Media Type with SOAP adapter trying to put SOAP header

    Hello,
    I am trying to put data into soap header using soap receiver adapter. Seems like building the complete soap message is the right way to go. Thus I wrote a java program to build the complete soap message (soap envelop, soap header and soap body which contains the message PI received from the sender). Mapping program works well. However when I ran the scenario, I got Error "SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type" when calling the receiver's web service (the SOAP receiver adapter CC have the "Do Not use SOAP Envelop" checked). Anyone knows why I got this error? From google, seems like this error is because the http's content-type is set to other type, rather than "text/xml". However in soap CC there is no option to control this.
    The message sent to the receiver is (after mapping);
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
    <SOAP-SEC:Signature xmlns:SOAP-SEC="http://schemas.xmlsoap.org/soap/security/2000-12" MyAttr="value">My Test Value</SOAP-SEC:Signature>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
    <ns1:UpdateEquipment xmlns:ns1="http://mycomp.com/mywebservice">
    <ns1:EquipmentNumber>000000012345</ns1:EquipmentNumber>
    <ns1:LicensePlate>654321</ns1:LicensePlate>
    </ns1:UpdateEquipment>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Anyone can help?
    Thanks

    When you check "Do Not use SOAP Envelop", the SOAP adapter chooses application/xml instead of text/xml.
    You can change the content type with help of the MessageTransformBean. You put the bean in the module chain of the receiver channel and add the parameter Transform.ContentType = text/xml
    See
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/57/0b2c4142aef623e10000000a155106/frameset.htm

  • Exception "main" javax.xml.ws.soap.SOAPFaultException: Missing SOAP Header

    Hi
    I need to integrate E-Business Suite with ADF using JAX-WS proxy client. When I tried to invoke a method exposed in webservices, I am getting the below error
    Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Missing in SOAP Header
    how to pass password with SOAP header?
    In a thread "https://forums.oracle.com/forums/thread.jspa?threadID=2125723", they mentioned to include "wss_username_token_client_policy" and to set override property to set user/pw from a csf key. I included that policy while generating the proxy client in "Step 7" and after then what should I do?
    Is it the only way to invoke secured webservices? if not what are the ways to do it?
    Can anyone give me good example or sample codes to invoke secured webservice through "JAX-WS Proxy client"
    Thanks

    I suppose that this is duplicate of How to pass username/password through WebService proxy client to E-BS.
    For full example check: http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client
    Dario

  • Split/Join, Invoke Service and SOAP Header in osb10.3 wls10.3

    Hi gurus,
    Are Split/Join able to invoke external services with a custom SOAP header?
    I have a split join to call 2 external business services in parallel. Those 2 external services requires a custom SOAP Header
    <soapenv:Header>
    <v1:ConsumerRequestHeader>
    <v1:requestSessionID>TEST_1</v1:requestSessionID>
    <v1:requestTimestamp>2011-06-16T16:57:54.943+02:00</v1:requestTimestamp>
    </v1:ConsumerRequestHeader>
    </soapenv:Header>
    All WSDLs were configured by the instructions of this link : http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/eclipsehelp/tasks.html#wp1150628, but in my debuging, the SOAP header is disappeared when calling those external services from the splitjoin. (No problem if designing and testing with the ProxyService. but Proxyservice is useless here because of parallel processing)
    When designing with OSB Workshop IDE, there is no way to pass the custom SOAP header to the "Invoke Service", only the body request/response message.
    My question is, Split/Join automatically uses its header to pass it into the invoke call ?
    Please advise...
    Thanks,

    see this :https://forums.oracle.com/thread/951618
    not the most fancy way, but you can create some sort of  wrapper proxyservice in front of your business service to make it work

  • How to access SOAP header without using SOAP message handler

    I have a requirement to retrieve SOAP header information within each web services operation. So I can't use SOAP message handler. Is there any way to do that? BTW, I am not using workshop.
    Thanks.

    Howeve how can I put data into soap header in UDF? DynamicConfiguration won't work for soap header, right?
    Which data do you want ot put into the Header section.
    ASMA or Dynamic Configuration is used to read/ put the details from/ into the header elements.....
    Refer: http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/frameset.htm
    From the help section:
    This information is not located in the payload of the message, but in additional message header fields.
    Regards,
    Abhishek.

  • Passing SOAP header while invoking a web service partner link from BPEL

    I followed the steps of adding bpelx.inputheadervariable. Which is supposed to add the soad header. But after running the BPEL process if I see the message in the console, I don't see the SOAP header. Is there any way to see how the SOAP header is passed or did I set it incorrectly?
    This is what the message looks like:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
    <ns0:Context xmlns:ns0="http://www.informatica.com/wsh">
    <SessionId>[string]</SessionId>
    </ns0:Context>
    </soap:Header>
    <soap:Body>
    <ns0:StartWorkflow xmlns:ns0="http://www.informatica.com/wsh">
    <DIServiceInfo>
    <DomainName>[string]</DomainName>
    <ServiceName>[string]</ServiceName>
    </DIServiceInfo>
    <FolderName>[string]</FolderName>
    <WorkflowName>[string]</WorkflowName>
    <WorkflowRunId>[int]</WorkflowRunId>
    <WorkflowRunInstanceName>[string]</WorkflowRunInstanceName>
    <Reason>[string]</Reason>
    <Attribute>
    <Name>[string]</Name>
    <Value>[string]</Value>
    </Attribute>
    <Key>
    <Key>[string]</Key>
    <mustUse>[boolean]</mustUse>
    </Key>
    <ParameterFileName>[string]</ParameterFileName>
    <Parameters>
    <Parameters>
    <Scope>[string]</Scope>
    <Name>[string]</Name>
    <Value>[string]</Value>
    </Parameters>
    </Parameters>
    <RequestMode>[ETaskRunMode]</RequestMode>
    <TaskInstancePath>[string]</TaskInstancePath>
    <IsAbort>[boolean]</IsAbort>
    <OSUser>[string]</OSUser>
    </ns0:StartWorkflow>
    </soap:Body>
    </soap:Envelope>
    I am trying to invoke the 'startworkflow' operation of Informatica web service Dataintegration.wsdl
    Edited by: user611166 on Apr 1, 2010 10:10 AM

    Hi,
    Try using obtunnel with your bepl console.
    Alternatively, if your server is on unix/ linux, try tcpdump to capture packets to a particular server and then open the file in wireshark to analyse the contents.
    Wish SOA suite would allow us to view this by default!
    Regards,
    Sappy

  • Post user and pass to SOAP Header message in ABAP Proxy

    Hi Folks!
    I'm trying to post user and pass to SOAP Header on an ABAP proxy. I've already read the thread [Consume web service in ABAP proxy with SOAP header|Re: Consume web service in ABAP proxy with SOAP header; and I see that is possible to manipulate SOAP Header but I cannot understand how I work with function module SDIXML_XML_TO_DOM.
    Do I need pass to parameter xml a complete SOAP Envelope? If it is right how can I get the complete xml message to pass to this parameter? I think I don't need the build the xml strucuture as I did on WebAS 6.40, isn't it?
    Thanks in advanced.

    Hi Rafael,
    I would be interested in the solution... could you please post it into forum.
    Thanks and best regards
    Stefan Bosshard

  • Sender SOAP adapter: get soap header data

    Hi,
    I've been going through various posts and blogs here on SDN + looked in the how to guide for SOAP adapter, but still find it quite difficult to actually find out how to do it. I've tried to follow recommendations seen, but it doesn't add up.
    So can someone please tell me how to get an element situated in the SOAP header of the request sent to XI via sender soap adapter?
    Let's for instance say the request looks like this:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Header>
              <SSN>1234567890</SSN>
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
              <event>
                   <elem1>data 1</elem1>
                   <elem2>data 2</elem2>
                   <elem3>data 3</elem3>
              </event>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    How can I get the data in the SSN-header element at mapping time?
    I'm sure this can be done by using adapter modules as the first step adapter, but I prefer doing it at mapping time if possible.
    Best Regards,
    Daniel

    I solved it on my own now. My missing link was the fact that I'm using XMLSPY to send request and thus need to replace all '&amp;' with & in Connection Endpoint.
    Message was edited by:
            Daniel Engsig-Karup

  • Passing Soap Header in Web Service

    Hi Team,
    In our application, we have used web service through webservice proxy wizard using the WSDL file.  Now due to security reasons we need to pass Soap Header in the webservice call. Can you please help on how to pass soap header in the webservice call ?
    Please find the below webservice code/
    Long ll_ret
    edpmdata ll_ReturnVal
    edpmreq lnv_Request_data
    //filter lnv_filter
    Datawindowchild dwc_child
    str_pass l_str_pass
    long l_l_row_count, l_l_row
    String l_s_code, l_s_modify, l_l_ret
    String str_proxy_name = "sohedpmservice"
    String l_s_delivery_pref, l_s_email
    String ls_url, l_s_ini_file
    l_s_ini_file = g_nv_ini.fnv_get_name ()
    ls_url = ProfileString(l_s_ini_file,"External", "EDPM_URL", "")
    Soapconnection lsc_Conn
    sohedpmservice lproxy_obj
    lsc_Conn = create Soapconnection
    SetPointer (Hourglass!)
    Try
    ll_ret = lsc_Conn.CreateInstance(lproxy_obj, str_proxy_name, ls_url)
    Catch (SoapException e )
    Error.fnv_error("0001", This, "ue_process_fields","Error Creating Instance","",FALSE,1,0)
    Message.ReturnValue = -1
    RETURN -1
    end try
    IF ll_ret <> 0 THEN
    Error.fnv_error("0001", This, "ue_process_fields","Error Creating Instance","",FALSE,1,0)
    Message.ReturnValue = -1
    RETURN -1
    END IF
    Try
    lnv_Request_data = create edpmreq
    lnv_Request_data.value = l_s_party_key
    ll_ReturnVal = lproxy_obj.getcommpref(lnv_Request_data)
    If ll_ReturnVal.ws_serviceresult.resultcode = '5' Then
       Error.fnv_error("0001", This, "ue_process_fields",String(ll_returnval.ws_serviceresult.ws_resultinfo) ,"Error Response ", FALSE, 1,0)
       Message.ReturnValue = -1
    RETURN -1
    End if
    l_s_delivery_pref = ll_ReturnVal.deliverymethod
    l_s_email = ll_ReturnVal.emailaddr
    i_str_pass.s[86] =  l_s_delivery_pref
    i_str_pass.s[87] =  l_s_email
    i_str_pass.s[88] = l_s_party_key
    Catch ( SoapException a )
    Error.fnv_error("0001", This, "ue_process_fields","Error Response","Error Response",FALSE,1,0)
    Message.ReturnValue = -1
    RETURN -1
    end try
    Destroy lsc_Conn
    Return 1

    What version of PowerBuilder?
    PB.Net or Classic?
    Are you using the SOAP or .Net Engine (if using Classic)?
    What kind of header?
    There is limited support for passing custom headers in the .Net engine in Classic.  The header would need to be defined in the WSDL for the service.
    Anything beyond that (e.g., WS-Security) would need to be handled in a WCF client in PB.Net.

Maybe you are looking for