Adding values to XI Soap Header

Hi All,
We have scenario, Soap to RFC. We are generating the wsdl for the ICO. We want the end system to send some values in the soap header(XI Soap header). We have used the keep header in the sender soap communication channel and added the value to the variable binding. When we generate the wsdl, there is no header in wsdl. We can only get the body.
Kindly let us know if what we are doing is correct.
Also please let us know how it can be  done.

Hi,
We want the end system to send some values in the soap header(XI Soap header). We have used the keep header in the sender soap communication channel and added the value to the variable binding. When we generate the wsdl, there is no header in wsdl. We can only get the body.
Checking the Keep Header option will only include the XI header as part of the response message. It will not be included in the request message. The variable binding allows you to place three variable headers (HTTP Headers) that you can use in dynamic config, it will not populate the SOAP Header at all.
If there is information in the SOAP Header that you need, you might as well run it in noSOAP mode by checking Do Not Use SOAP Envelope in your sender CC.
Regards,
Mark

Similar Messages

  • Query reg adding custom tags in SOAP Header - AXIS Receiver Adapter

    Hi All,
    I need to send custom tags as mentioned below to my traget webservice application. I think I can do this with Receiver AXIS adapter but not sure how it can be done. Can any of you suggest?
                                                  <WSContext>
                   <FromAppId>ABC</FromAppId>
                   <ToAppId>XYZ</ToAppId>
              </WSContext>
    Thanks,

    If you want to add custom tags in the soap header, one possible solution is use XSLT mapping or Java mapping to create header first then do message mapping for mapping the payload structure between your source and target  as usual.
    So in operation mapping you sequence mapping like this... first XSLT mapping for custom tags for the SOAP Header followed by payload mapping.
    Hope that helps.
    Search SDN for XSLT Mapping for soap header. Already we have handled these issues.

  • Adding WS Security in SOAP header for calling soap services from PI

    When i am calling a wss enabled webservice from soapui with the header parameters
    Username , Password and Password Type - PasswordText , it is able to get results. The soapui tool automatically adds the following in the soap header -
         <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
             <wsse:UsernameToken wsu:Id="UsernameToken-9368150" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsse:Username>xxxxx</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxxxx</wsse:Password>
                <wsse:Nonce>aOA1P6t2hJPRyuraQ/IliQ==</wsse:Nonce>
                <wsu:Created>2009-07-10T14:58:33.781Z</wsu:Created>
             </wsse:UsernameToken>
          </wsse:Security>
    However , in PI when the following configurations are made -
    Web Services Security option selected in soap receiver adapter
    In Receiver Agrrement -
    Security Standard -  http://docs.oasis ....
    Security Procedure (Request) - None
    Security Procedure (response) - None
    the user tokens don't seem to generated and it is giving an authentication error . Is there any process of generating this in the outgoing soap header from PI.
    SOAP Axis framework is not installed at present  and working on PI 7.1 SP6.
    Looking forward for your replies

    same issue for me too.
    Try using WS adapter on receiver side .
    If you are able to attach SOAP header with WSSE fields using SOAP adapter at reciever channel let me know how you did it.

  • Exapmle for SOAP Header in WS using JAXRPC Handler

    Any one has example of how to use the SOAP Header in Webservice implementation using the JAX RPC handler?
    We have a situation where several PL/SQL web services require some context being set in the PL/SQL package. I am planning to use the PL/SQL web service with some soap headers , when present the Handler will take those values from the SOAP header and make the extra pl/sql calls, before the BODY which will be mapped to the pl/sql procedure whose response will be sent back as the WS response..
    I will really appreciate if some one show me the example on how to use the JAXRPC handler in JDEV.
    Thank you very much.

    Probably the easiest way is to insert
    @Resource
    WebServiceContext wsc;
    in your @WebService annotated class.
    Depending what you want to do a SOAPHandler might be appropriate.
    also possible:
    http://www.khapre.org/blog/archives/2008_08_01_index.aspx
    Edited by: Konrad KRENTZ on Dec 1, 2009 8:56 PM

  • Using Message ID in the SOAP header (Sender)

    Hi Experts,
    The scenario is SOAP to IDoc.
    We have requirement to insert the Message ID in the SOAP header for avoiding duplicate messages from the SOAP client.
    Please note SOAP client is unable to support URL parameter, so we have to use Message ID in the SOAP header.
    So please suggest how to insert the Message ID in the SOAP header (WSDL) , and do we need to implement any mapping to retrieve the Message ID value from the SOAP header  - to create a PI message.
    Thanks in advance.
    MK

    But I want to know how we update the WSDL with the required Feild(messageID).
    I dont think you can update the wsdl url to include the messageID field...if you notice the other fields in the wsdl you will find all are static...however your messageID will be dynamic.....so just ask the SOAP client application to append the MessageId field and send the message.....at runtime the message id will be extracted by PI......did you test the scenario?...if no then test it once so that if there is an error we will come to know...
    Regards,
    Abhishek.

  • How to get DateTime from PI message SOAP Header

    Hi ALL
    Can you please let me know how we can get the time message received in PI from the SOAP message header
    <SAP:TimeSent>2010-08-17T16:24:16Z</SAP:TimeSent>
    I would like to capture this value and send it in the payload of the message, initially I was using the Current TIme date function.
    However, if I can get the time received value from the SOAP Header message, It will be more accurate in providing the Time the message was received by IE.
    Thank you,
    Parikshit
    Sample SOAP Header from MONI:-
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <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/" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
      <SAP:MessageId>4C69D4B7-9806-0162-E100-80000A8221E6</SAP:MessageId>
    <SAP:TimeSent>2010-08-17T16:24:16Z</SAP:TimeSent>
    - <SAP:Sender>

    If you want to get the TimeSent from SOAP header and map it to some field in ur message then u can easily do it using following UDF :-
    GlobalContainer globalContainer;globalContainer = container.getGlobalContainer();
    java.util.Map param = globalContainer.getParameters();.
    String timeSent = (String) param.get (StreamTransformationConstants.TIME_SENT);
    return timeSent ;
    Note: This UDF won't need any input. So u need not to maintain any variable in UDF signature.
    Edited by: Samiullah Qureshi on Aug 18, 2010 9:41 AM

  • Dynamic Receiver Determination using Soap header

    Hi ,
       I am trying to use a field in SOAP Header to determine the receivers dynamically.
    1, Using XPATH gives me only values in the Payload and not the SOAP header. Is it possible to pull the value from the SOAP header to the payload and then do dynamic receiver determination.
    2. Using Context Object is it possible to transfer the value of the field in SOAP header to variable header Xheadername1 and then use it to determine the receiver. I am having problems in passing the value of the field in soap header to XHeadername1.
    Any help is appreciated and points will be awarded.
    Joe Vellaiparambil

    Hi Joe,
    This is a good blog by William, hope this is helpful.
    /people/william.li/blog/2009/07/30/how-to-read-soap-header-information
    Let us know if you need more information.
    Regards,
    Neetesh

  • 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.

  • Web Services Test Page: No input fields for SOAP header parameters?

    Hello,
    we're using OracleAS / OC4J 10.1.3.1 and have developed a web service that has some self defined SOAP header parameters.
    I would like to use the Web Services Test Page provided by the OAS but it seems that there is no opportunity
    to provide input values for these SOAP header parameters.
    Do I miss something there or is it not supported by OAS?
    I've read the documentation but could not find a clue.
    any help is appreciated,
    Regards,
    Martin

    I hear you. As you have probably heard, OC4J is being replaced by WebLogic Server and the 10.1.3.x releases are the last that will be produced. We'll do maintenance on it of course, but little/no new feature work. This would be a new feature we'd have to add, so I'm afraid there's not much chance in having it done.
    It's not ideal, and of course more work for you, but if you want to provide your client with a test page that exposes the SOAP headers as form fields, you could always develop and ship one yourself.
    -steve0

  • Get Custom SOAP Header Value in SOA Suite 11.1.1.6 using BPEL 1.1

    Hi Experts,
    We are using SOA Suite 11.1.1.6 and in one of the projects we have requirement to retrieve custom SOAP header value.
    This is enhancement to existing process which is developed using BPEL 1.1 and deployed to Production. So we cannot convert this now to BPEL 2.0
    We suggested to use custom XML element in Header the definition of which will be defined in custom XSD and stored in common location. However the 3rd party who are invoking this service will not be able to do any customization in their process to pass custom XML header.
    Please can you help me in providing any approach through which we can retrieve custom Header value from SOAP header using BPEL 1.1
    I have read some blogs for retrieving the custom XML header but they are using BPEL 2.0. I would like achieve this functionality using BPEL 1.1
    Appreciate your inputs.
    Thanks in Advance - RK

    Hello RK,
    Have you've tried to put the bpex:outputHeaderVariable on the invoke activity of the invoked service.
    <invoke name="Invoke"
                bpelx:outputHeaderVariable="HeaderVariable"/>
    Where the "HeaderVariable" reflects the XSD Datastructure of the received header.
    This is also specified here in section 6.19.1 How to Receive SOAP Headers in BPEL
    Please note that the exact header must be specified in the WSDL of the invoked service.
    Also note that in case of a soap fault. No header will be returned from the invoked service but only a /soap/body/fault part.
    Good luck!
    Melvin

  • Adding soap header in MX6.1

    I have a code working on MX7, it first adds soap
    header(username and password) then gets the response, but similar
    code didn't work on MX6.1. Please help.
    MX7 code:
    <cfscript>
    ru = XmlNew();
    ru.AuthenticationHeader = XmlElemNew(ru, "
    http://www.mytesting.com/Webservices/ProductInfo","AuthenticationHeader");
    ru.AuthenticationHeader.UserName = mlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","UserName");
    ru.AuthenticationHeader.UserName.XmlText = "myusername";
    ru.AuthenticationHeader.Password = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","Password");
    ru.AuthenticationHeader.Password.XmlText = "mypassword";
    ws = CreateObject("webservice", "
    http://www.mytesting.com/Webservices/ProductInfo/Management.asmx?WSDL");
    addSOAPRequestHeader(ws, "
    http://www.mytesting.com/Webservices/ProductInfo",
    "AuthenticationHeader", ru.AuthenticationHeader, true);
    subbid = ws.GetProductInfo();
    </cfscript>
    MX6.1 code:
    <!--- get SOAP functions --->
    <cfinclude template="soap-udfs.cfm">
    <cfscript>
    ru = XmlNew();
    ru.AuthenticationHeader = XmlElemNew(ru, "
    http://www.mytesting.com/Webservices/ProductInfo","AuthenticationHeader");
    ru.AuthenticationHeader.UserName = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","UserName");
    ru.AuthenticationHeader.UserName.XmlText = "myusername";
    ru.AuthenticationHeader.Password = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","Password");
    ru.AuthenticationHeader.Password.XmlText = "mypassword";
    ws = CreateObject("webservice", "
    http://www.mytesting.com/Webservices/ProductInfo/Management.asmx?WSDL");
    addRequestHeader(ws, "AuthenticationHeader",
    ru.AuthenticationHeader, "
    http://www.mytesting.com/Webservices/ProductInfo",
    true);
    subbid = ws.GetProductInfo();
    </cfscript>
    Error message for MX6.1:
    Could not perform web service invocation "GetProductInfo"
    because AxisFault faultCode: {
    http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode: faultString: java.io.IOException: No serializer found
    for class coldfusion.xml.XmlNodeList in registry
    [email protected] faultActor:
    faultNode: faultDetail: {
    http://xml.apache.org/axis/}stackTrace:
    java.io.IOException: No serializer found for class
    coldfusion.xml.XmlNodeList in registry
    [email protected] at
    org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImp l.java:1281)
    at
    org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java :795)
    at
    org.apache.axis.message.MessageElement.outputImpl(MessageElement.java:817)
    at
    org.apache.axis.message.SOAPHeaderElement.outputImpl(SOAPHeaderElement.java:250)
    at
    org.apache.axis.message.MessageElement.output(MessageElement.java:783)
    at
    org.apache.axis.message.SOAPHeader.outputImpl(SOAPHeader.java:342)
    at org.apache.ax...

    XML snippit
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:con="urn:crmondemand/ws/contact/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:con1="urn:/crmondemand/xml/contact">
    <soapenv:Header>
    <wsse:Security>
    <wsse:UsernameToken>
    <wsse:Username>your_site/your_login</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">your_password</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    This isn't exactly what you are looking for but you can use this to add a header to a axis web service call.
    SOAPHeaderElement header = new SOAPHeaderElement("http://your.xsd", "your tag");
    SOAPHeaderElement header1 = new SOAPHeaderElement("http://your other.xsd", "your other tag");
    header1.setAttribute("Id", "your value");
    header.addChild(header1);
    SOAPElement node = header1.addChildElement("more text");
    node.addTextNode("more text");
    SOAPElement nodepwd = header1.addChildElement("another tag");
    nodepwd.addTextNode("more text");
    nodepwd.setAttribute("Type", "http://another url");
    ((Stub)service2).setHeader(header);
    Hope this is more helpful than confusing.

  • Adding soap header in java

    Can anyone please tell me how to add following security header in Webservices (WS 1.0 ) client using java code? (I m using axis 1.4)
    <soap:Header>
    <wsse:Security soap:mustUnderstand="1">
    <wsse:UsernameToken>
    <wsse:Username>[email protected]</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssusername-
    token-profile-1.0#PasswordText">adminOnDemand</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soap:Header>

    XML snippit
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:con="urn:crmondemand/ws/contact/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:con1="urn:/crmondemand/xml/contact">
    <soapenv:Header>
    <wsse:Security>
    <wsse:UsernameToken>
    <wsse:Username>your_site/your_login</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">your_password</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    This isn't exactly what you are looking for but you can use this to add a header to a axis web service call.
    SOAPHeaderElement header = new SOAPHeaderElement("http://your.xsd", "your tag");
    SOAPHeaderElement header1 = new SOAPHeaderElement("http://your other.xsd", "your other tag");
    header1.setAttribute("Id", "your value");
    header.addChild(header1);
    SOAPElement node = header1.addChildElement("more text");
    node.addTextNode("more text");
    SOAPElement nodepwd = header1.addChildElement("another tag");
    nodepwd.addTextNode("more text");
    nodepwd.setAttribute("Type", "http://another url");
    ((Stub)service2).setHeader(header);
    Hope this is more helpful than confusing.

  • Timestamp and Nonce value in SOAP header

    Hi, can you provide some guidance on how to handle this Oracle SOA suite 11g
    My application was calling an external web service which was just expecting the user name and password. So I was using username_token_client_policy with a csf key
    Now the external web service has changes and they are expecting TimeStamp ( Created & Expires ) and Nonce value to be sent. Below is the format of the SOAP header they are expecting.
    Can someone share what OWSM policy I have to use to build such a SOAP header or should I build the values in my bpel during bpelInputHeaderVariable
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsu:Timestamp wsu:Id="TS-15">
    <wsu:Created>2013-06-06T22:03:54.397Z</wsu:Created>
    <wsu:Expires>2013-06-06T22:04:54.397Z</wsu:Expires>
    </wsu:Timestamp>
    <wsse:UsernameToken wsu:Id="UsernameToken-14">
    <wsse:Username></wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>
    <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"></wsse:Nonce>
    <wsu:Created>2013-06-06T22:03:49.384Z</wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>

    i need to get USERNAME and PWD in my Soap header for consuming Webservice using SAP PI ,
    Can be achieved by XSL Mapping or SOAP Axis Adapter. Search on SDN for further details as this has been discussed many a times on the forum.
    should i need to get some certificates from client and deploy it or should we do anything in SAP PI and send to soap header or can hard code it and send to webservice, please help me in this t
    First you need to confirm whether certificates are required or not. Might be the web service is using user id / password security (basic authorization).
    How to use certificates in PI - Search on SAP Help, this has been explained in great details over there.

  • Adding C# Soap Header to a client that calls BT2010 Orchestration published as a WCF Web Service

    I've added code from this reference to my orchestration (that is published as a WCF webservice):
    Accessing SOAP Headers in Orchestrations.
    I have a C# client that I was previously using before I was using any of the SOAP Headers.  I've been looking at dozens of blogs, and find the answers to anything related to SOAP Headers most confusing (and often specific to unique cases). 
    I'm using BT2010.  How can I add username, password, and a custom header called "ApplicationID" to my existing C# program and pass it to the orchestration/web service?
    Thanks,
    Neal

    Neal,
    The BizTalk WCF Service Publishing Wizard does not include custom SOAP header definitions in the generated metadata. To publish metadata for WCF services using custom SOAP headers, you should manually create a Web Services Description Language (WSDL) file.
    You can use the externalMetadataLocation attribute of the
    <serviceMetadata> element in the Web.config file that the wizard generates to specify the location of the WSDL file. The WSDL file is returned to the user in response to WSDL and metadata exchange (MEX) requests instead of the auto-generated WSDL.
    The following XML data shows an example of a part of the WSDL file defining custom SOAP headers:
    <wsdl:operation name="Request">
    <soap12:operation soapAction="http://Microsoft.Samples.BizTalk.NetTcpAdapter/OrderProcess/IOrderProcess/Request" style="document" />
    <wsdl:input name="Order">
    <soap12:header message="i0:Order_Headers" part="SalesAgent" use="literal" />
    <soap12:body use="literal" />
    </wsdl:input>
    <wsdl:output name="OrderConfirmation">
    <soap12:header message="i0:OrderConfirmation_Headers" part="PaymentAgent" use="literal" />
    <soap12:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    Refer:
    SOAP Headers with Published WCF Services
    Rachit
    Please mark as answer or vote as helpful if my reply does

  • Adding element RelatesTo to the soap header

    Hi All,
    I need to replace wsa05:MessageID element in the soap header with the following value
    <wsa05:MessageID>fn-bea:uuid()</wsa05:MessageID>
    <wsa05:RelatesTo>$header/wsa05:MessageID/text()</wsa05:RelatesTo>
    How would I do that in OSB proxy service?

    You may use Insert or Assign or Replace action -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/proxy_actions.htm#CIHEFDFB
    Regards,
    Anuj

Maybe you are looking for

  • ISW Installation problem on Solaris SPARC

    We are currently running JES4 directory server version 5.2 patch 5. We wanted to test a JES5 installation so we could install Identity Synchronization for Windows (ISW) and see if it would resolve the problem we have keeping our Directory Server (JES

  • Mail attachement more than 5KB user is unable to receive

    Hi All We are trying to send the mail from SAP to Lotus notes with attachment, if more than 5KB user is unable to receive attached mail, at the same time user is able to receive the mail if less the 5KB of SIZE. where we need to change the setup to a

  • ERMS CRM6.0

    Hi, I have done the initial settings to get the mails sent from outlook to Agent Inbox.  However my mails are not reaching Agent Inbox. I can see all me mails sent under SCOT -> Utilities -> Inbox Overview. Is there any config I am missing ? Regards

  • V$sqlarea !!

    Hi, the following is my question : 1) I know that oracle can keep track each update to the database table like the update command. e.g. update tableA set block = 'Y' where user_id = 'XXX'; But is there any other table i can select the cached SQL othe

  • Apps can't access my photos or contacts. But they don't appear in privacy or restrictions to turn them on.

    My apps can't access photos or contacts. They don't appear in the privacy or restrictions settings so there is no option to turn them on.