About soap header

Hello ,
i trying to call webservice.i got resposnse.i get saop body and its child element.but in that response i am not gettting soap header element.is there anything extra i have to do to get soap header.
can anybody tell me ,How  to get response header?
i tryed follwing code to get response header.
var qName:QName = new QName("http://xyz.com/");
var soapH:SOAPHeader = ws.getHeader(qName,"SoapHeadeName");
but this is not working.

Handlers are not WebLogic-specific (they are part of the JAX-RPC spec), but they are Java-specific. Web services are programming language agnostic, so you won't find information on them in a WSDL :-)
If you want your WSDL to contain a description of the types for your Web Services' SOAP Header, you'll need to use the new source2wsdd tags in the source for your backend component. Here's the e-docs link:
http://e-docs.bea.com/wls/docs81/webserv/wlws_tags.html#1095473
Regards,
Mike Wooten

Similar Messages

  • 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

  • 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

  • Reading custom SOAP header with XHeaderName1

    Hello Experts,
    I have a SOAP to File scenario and I am trying to do dynamic receiver determination by looking at the SOAP request header info. I am adding a custom field (System_ID) that I want rules to run against in Receiver Determination..
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:*******************">
    <soapenv:Header>
    <System_ID>100</System_ID>
    </soapenv:Header>
      <soapenv:Body>
       </soapenv:Body>
    </soapenv:Envelope>
    In the Receiver Determination I have multiple rules using SOAP context object to  XHeaderName1 = the System_ID (100) to pass the message to the right system at runtime according to the  System_ID.
    In the SOAP sender channel I have Set Adapter-Specific Message Attributes and Variable Transport Binding checked. I also have the variable name System_ID in the first Variable Header (XHeaderName1).
    In the SOAP sender Conversion Parameters I have Do Not Use SOAP Envelope and Keep Headers checked, as well as nosoap=true in the SOAP request URL.
    I'm getting the System ID to show in XI in sxmb_moni in the Header but no where do I see it being used with XHeaderName1.
    Am I using XHeaderName1 right? If not could you advise as to how XHeaderName1 should be used?
    My requirement is to read system ID from Header, not payload.
    Thank you!
    Tim

    I was able to find a solution to my problem.
    I created a basic senario below to test:
    1.A basic Asynchronous scenario is created using a SOAP sender adapter to 2 possible flat file receivers.
    2.The SOAP sender channel will have the option u201CDo Not Use SOAP envelopeu201D checked and SOAPUI URL will have u201C&nosoap=trueu201D added to the end.
    3.The receiver system name will be stored in the WS-Addressing u201CActionu201D field sent from SOAPUI.
    4.Two ABAP mappings are created. One mapping will extract the system number from the WS-Addressing u201CActionu201D field. The other mapping will extract just the body of the SOAP message to send along. Using regex and string manipulation in the ABAP mappings we can reuse the mappings for any SOAP message.
    5.Enhanced (Extended) Receiver Determination is selected and interface mapping using system/XI ReceiverDetermination  service interface is used to capture the receiver system.
    While this is a solution is not the best, it is a solution. Upon research I found a recent SAP Note 1385579 talking about implementing a SAP delivered generic SOAP Sender AXIS handler com.sap.aii.axis.soap.HeaderExtractionHandler to extract SOAP Header elements and place in message attributes. I will be trying this out.

  • How to add a custom element to a SOAP Header in c#

    I am new to SOAP and web-services, and not an expert on c# either so sorry if I have made an infuriatingly simple error.
    I am calling several web-services and I now need to add an element called *pcimask* to the SoapHeader in order to get a response that is PCI Compliant.
    The web-services/WSDL don't expose this property so I guess I need to add it at runtime.
    My application creates SOAP messages like the below: (the Soap Request and Response are output into a text file by a SOAP Logging class)
    <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>
    <AutHeader xmlns="http://edb.com/ws/WSCommon_v21">
    <SourceApplication>myApp</SourceApplication>
    <DestinationApplication>theirApp</DestinationApplication>
    <Function>CardCreate</Function>
    <Version>3.0.0</Version>
    <ClientContext>
    <userid>myID</userid>
    <credentials>SecureToken</credentials>
    <channel>NBA</channel>
    <orgid>123456</orgid>
    <orgunit>654321</orgunit>
    <customerid />
    <locale xsi:nil="true" />
    <ip>123.456.789.012</ip>
    </ClientContext>
    </AutHeader>
    </soap:Header>
    As I understand it, I need to add an element `pcimask="true` to the
    <ClientContext element, and it must be after the <ip>
    However the wsdl doesn't expose this as a property.
    So I have looked at the below resources:
     Bytes.com - how-add-soap-header-soap-message
     Stackoverflow: (18980689) adding-custom-soapheader-in-c-sharp-for-a-web-service-call
     Stackoverflow: (4035423) add-child-elements-to-custom-soap-header-in-spring-ws
    and I came up with a little class inside my `common.cs` as below:
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    namespace EvryCardManagement
    [XmlRoot(Namespace = "http://edb.com/ws/WSCommon_v21")]
    [SoapHeader("EDBHeaderType", Direction = SoapHeaderDirection.In)]
    public class CardCreateEx : SoapHeader
    public string Value;
    public CardCreateEx pcimask;
    public static class Common
    public static bool closeMe { get; set; }
    public static int iMQRowID;
    public static string impNme;
    public static string impPwd;
    and I wanted to try and use it in my code that creates the SoapHeader as below:
    private EDBHeaderType wsSoapHeader()
    EDBHeaderType wsSoapHeader = new EDBHeaderType();
    /* ClientContext */
    ClientContextType clientContext = new ClientContextType();
    clientContext.userid = edb_service[0].userid;
    clientContext.credentials = Common.SOToken;
    //clientContext.pc
    clientContext.orgid = edb_service[0].orgid;
    clientContext.orgunit = edb_service[0].orgunit;
    clientContext.customerid = "";
    clientContext.channel = edb_service[0].channel;
    clientContext.ip = edb_service[0].ip;
    /* PCI MASK added to ClientContext in header; P-02925; Jan 2015 */
    CardCreateEx cardCreateExt = new CardCreateEx(); // P-02925; Jan 2015
    cardCreateExt.Value = "true";
    /* EDBHeader */
    wsSoapHeader.SourceApplication = edb_service[0].SourceApplication;
    wsSoapHeader.DestinationApplication = edb_service[0].DestinationApplication;
    wsSoapHeader.Function = edb_service[0].Function;
    wsSoapHeader.Version = edb_service[0].Version; // P-02925; Oct-Nov 2014
    wsSoapHeader.ClientContext = clientContext;
    return wsSoapHeader;
    but I get a build error:
        Attribute 'SoapHeader' is not valid on this declaration type. It is only valid on 'method' declarations.
    so what is the correct way to do this?

    Hi,
    >>Attribute 'SoapHeader' is not valid on this declaration type. It is only valid on 'method' declarations.
    Base on this situation, just as the error message says, the 'SoapHeader' attribute can only use on method, such as:
    [SoapHeader("myHeader", rection=SoapHeaderDirection.InOut)]
    //Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders",Required=false)]
    public string MyWebMethod() {
    return "Hello";
    For mire information:
    http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapheader(v=vs.110).aspx
    Besides, about Defining and Processing SOAP Headers:
    http://msdn.microsoft.com/en-us/library/77hkfhh8(v=vs.71).aspx
    http://stackoverflow.com/questions/18980689/adding-custom-soapheader-in-c-sharp-for-a-web-service-call
    Regards

  • How to add a soap header in the mesage

    Hi expert:
       We have a problem about this synchronous scenario: ECC(ABAP Proxy)>PI>P6(SOAP),  In P6,it need additional soap header as below:
    <soapenv:Header>
    <wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-5700630" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>admin</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    How can i add this header to the receiver message?

    Hi
    Create an XSL file like below and use in your mapping.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
    <soapenv:Header>
    <wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-5700630" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>admin</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
             <xsl:copy-of select=""/>*     
    </xsl:template>
    </xsl:stylesheet>

  • WSSE usename token not in the SOAP Header

    Background:
    Webservice with four methods; OpGet, OpCreate, OpGetList, OpSet. Setup a jcx with this webservice URL, generate a test harness from workshop, and running this test harness and looking at the SOAP messages being send and received to verify that the web services are working. The OpGet is working since it doesn't require user credentials. But the OpCreate is currently not working. Remedy is rejecting it because of access control.
    Problem #1:
    Need to pass the user credential in the SOAP header. Here's the required information in WSDL regarding Authentication.
    <wsdl:operation name="OpCreate">
    <soap:operation soapAction="urn:SimpleWebService/OpCreate" style="document"/>
    <wsdl:input>
    <soap:header message="s:ARAuthenticate" part="parameters" use="literal">
    </soap:header>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    Solution that I have implemented so far:
    I have setup a WSSE file with the simple username/password in the <wsSecurityOut> element and was expecting to see this in the SOAP Header element in the WSDL message. When I look at the SOAP message in the test harness that I have generated in Workshop, I don't see this credential information. I have set the "ws-security-service property to the wsse file. I know that the harness has seen the wsse file since it gives me warning about having the password in simple text without encryption.
    Shouldn't I be seeing this userNameToken information in the SOAP Header when I run the test harness (jws) from workshop? As you can see below (Problem #2) no SOAP header is being generated.
    Problem #2:
    I see that in the SOAP message that test harness is sending wrong "xsi:type" information. It seems to be sending the "StatusType" for all the parameters except the one "Status" where it needs to?
    SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
    <ns:OpCreate xmlns:ns="urn:SimpleWebService">
    <ns:Assigned_To xsi:type="ns:StatusType">donnab</ns:Assigned_To>
    <ns:Short_Description xsi:type="ns:StatusType">testing from weblogic 8.1 SP3 Workshop</ns:Short_Description>
    <ns:Status>New</ns:Status>
    <ns:Submitter xsi:type="ns:StatusType">donnab</ns:Submitter>
    </ns:OpCreate>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Here's the WSDL where the OpCreate is defined:
    <xsd:element name="OpCreate" type="s:CreateInputMap"/>
    <xsd:complexType name="CreateInputMap">
    <xsd:sequence>
    <xsd:element name="Assigned_To" type="xsd:string"/>
    <xsd:element name="Short_Description" type="xsd:string"/>
    <xsd:element name="Status" type="s:StatusType"/>
    <xsd:element name="Submitter" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>

    I've never been able to see that information because I assume Weblogic server strips it out the minute it receives it and uses it to authenticate the user against a principal in the server.
    You can get ahold of this info, though. In your .jws file, in workshop, add this as a context:
    /** @common:context */
    JwsContext context;
    In your web services method, access the context to get the username:
    context.getCallerPrincipal().getName();
    That will return a String w/ the username passed in the username token.
    -Becky

  • SOAP Header Security in Oracle Service Bus

    Currently we are in the process of implementing the SOAP Header Security through Oracle Service Bus. We have a requirement that BPEL need to call a external web service. That web service will be registered in OSB. While making the call, the OSB need to add the SOAP security header(user name & Pwd) in proxy service before forwarding the request to business service. Can you please help me find some information about that.

    Hi Manoj,
    The request payload which is going to the target is
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <man:GetDefaultRechargeValuesRequest xmlns:man="http://www.NII.com/ManagePrepaidRecharge/workflow/ManagePrepaidRecharge">string</man:GetDefaultRechargeValuesRequest>
    </soapenv:Body>
    </soapenv:Envelope>
    whereas the target expects the soap header populated. the payload expected by the target is
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <gsa:Authentication xmlns:gsa="http://www.nextel.com.br/Wbs/Gsa">
    <gsa:Account>test</gsa:Account>
    <gsa:Password>test</gsa:Password>
    <gsa:Guid>f65748e63b01</gsa:Guid>
    </gsa:Authentication>
    </soap:Header>
    <soapenv:Body>
    <man:GetDefaultRechargeValuesRequest xmlns:man="http://www.NII.com/ManagePrepaidRecharge/workflow/ManagePrepaidRecharge">string</man:GetDefaultRechargeValuesRequest>
    </soapenv:Body>
    </soapenv:Envelope>
    The Problem now is, when i call a business service(WSDL of the target) from a proxy service and when i set the above expression to the $header using replace action in the proxy service itself, the above expression,instead of going as a request to the business service, it is populated in the response.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <gsa:Authentication xmlns:gsa="http://www.nextel.com.br/Wbs/Gsa">
    <gsa:Account>test</gsa:Account>
    <gsa:Password>test</gsa:Password>
    <gsa:Guid>f65748e63b01</gsa:Guid>
    </gsa:Authentication>
    </soap:Header>
    <soapenv:Body>
    <ns0:GetDefaultRechargeValuesResponse xmlns:ns0="http://www.NII.com/ManagePrepaidRecharge/workflow/ManagePrepaidRecharge">
    <ns0:StandardHeaderBlock>
    <ns2:ServiceState xmlns:ns2="http://xmlns.oracle.com/apps/StandardHeaderBlock">
    <ns2:errorCode>SOA_ERR_TARGET_SYSTEM_FAILURE</ns2:errorCode>
    <ns2:errorDesc>
    OSB Service Callout action received an error response
    </ns2:errorDesc>
    </ns2:ServiceState>
    </ns0:StandardHeaderBlock>
    </ns0:GetDefaultRechargeValuesResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    Since the authentication details are not reaching the target, it is giving a target system failure. Can you suggest a remedy to this please.

  • SSL web service task SOAP header Action was not understood..

    Hi all,
    While I create  web service task to consum a wcf service using SSL and execute the task it give the following error: But the same WCF service is deployed in nonSSL (basicHTTPBinding) , it works well and the results are received. Could any one suggest
    what is missing?
    Error: 0xC002F304 at Web Service Task, Web Service Task: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: The Web Service threw an error during method execution. The error is: SOAP
    header Action was not understood..
     at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvokerProxy.InvokeMethod(DTSWebMethodInfo methodInfo, String serviceName, Object connection)
       at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser)
       at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()".
    Task failed: Web Service Task
    SSIS package "Package.dtsx" finished: Success.
    Regards
    Venkatesh G

    Can you provide more information? Are you using BasicHttpBinding with transport security? If you access the service from a console client instead of SQL Server Web Service Task, does it work?
    Lante, shanaolanxing This posting is provided "AS IS" with no warranties, and confers no rights.
    If you have feedback about forum business, please contact
    [email protected] But please do not ask technical questions in the email.

  • SOAP RECEIVER: Possible to change the soap header request

    Hi
    Is it possible to change what is included in the soap header like namespaces (.. xmlns:ns="http://what.com"
    Specifically I need to have the "http://Strange.org/thisis.xsd" (see below) included in the header and the <ns:pi-create> included in SOAP-ENV
    <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"
    xmlns:ns="http://Strange.org/thisis.xsd">
    <SOAP-ENV:Body>
    <ns:pi-create>
    <request>
    <request-data>...
    </request-data>
    </request>
    </ns:pi-create>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Hope somebody can help
    Cheers

    Hi Bowie,
    1.You can change the Namespace. condition is no obj's under the namesapce then only it's possible otherwise u can't.
    2.create a new namesapce what ever u want and copy all the obj's under that namesapce.finally delete the previous one.
    XMLAnonymizerBean
    Use
    You use this module to anonymize XML elements and attributes by removing namespaces or namespace prefixes from the XML document of the main payload.
    You can define a particular namespace prefix for each namespace. You can also change the encoding attribute of the XML declaration.
    Integration
    You can use the module in adapters that can be extended in the module processor.
    Activities
    Entries in the Processing Sequence
    ●      Insert the module before the adapter module.
    If the adapter comprises multiple modules, for information about the position of the module, see: Extending the Module Chain in the Module Processor
    ●      Enter the module name AF_Modules/XMLAnonymizerBean.
    ●      Select the Module Type Local Enterprise Bean.
    ●      The system proposes a module key.
    Entries in the Module Configuration
    ●      anonymizer.acceptNamespaces
    Enter a list of namespaces and their prefixes that are to be kept in the XML document as follows: namespace1 n1 namespace2 n2 u2026
    To enter a namespace without a prefix, enter '' (two single quotation marks).
    Any namespaces you do not specify are removed from the XML document.
    ●      anonymizer.quote
    Specify the character to be used to enclose the attribute values.
    The default value is '. The parameter is optional.
    ●      anonymizer.encoding
    To use a code page other than UTF-8, enter it.  The parameter is optional.
    For example, enter ISO-8859-1.
    Example
    The anonymizer.acceptNamespaces parameter has the following value:
    urn:sap-com:document:sap:rfc:functions rfc urn:sap-com:document:sap:soap:functions:mc-style rfc
    ●      Payload before using the XMLAnonymizerBean:
    <Z_PAYMITEM_GET_LIST
      xmlns="urn:sap-com:document:sap:rfc:functions"
      xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <I_ACCOUNTIDENT xmlns="">
        <ACCOUNT_NUMBER>0080000094</ACCOUNT_NUMBER>
        <BANK_COUNTRY>DE</BANK_COUNTRY>
        <BANK_COUNTRY_ISO>DE</BANK_COUNTRY_ISO>
      </I_ACCOUNTIDENT>
    </Z_PAYMITEM_GET_LIST>
    ●      Payload after using the XMLAnonymizerBean:
    <?xml version='1.0' encoding='utf-8'?>
    <rfc:Z_PAYMITEM_GET_LIST
      xmlns:rfc='urn:sap-com:document:sap:rfc:functions'>
      <I_ACCOUNTIDENT>
        <ACCOUNT_NUMBER>0080000094</ACCOUNT_NUMBER>
        <BANK_COUNTRY>DE</BANK_COUNTRY>
        <BANK_COUNTRY_ISO>DE</BANK_COUNTRY_ISO>
      </I_ACCOUNTIDENT>
    </rfc:Z_PAYMITEM_GET_LIST>
    with rgds,
    MFH

  • XI APIs to access SOAP Header Tags

    Hi Forum,
    The way we use DynamicConfiguration class from com.sap.aii.mapping.api.* API, to access file names etc,
    is there classes available for accessing other tags in the SOAP Header, for example ReliableMessaging, PerformanceHeader, etc

    U can look into Adapter Specific attributes for soap adapter also. If you want to transfer header fields, set the relevant indicator for Variable Header in the SOAP communication channel. This is generic for header fields. Not sure about the particual fields
    Regards,
    Prateek

  • Extension of Standard SOAP Header Information in SOAP Adapter

    We are currently trying to call an eBay Web Service via SAP XI and we are using the SOAP Adapter in XI to achieve this.
    The following Authentication Information is required in the SOAP Header for accessing the eBay Web Service:
    - Token
    - ApplicationID
    - DevelopmentID
    - CertificationID.
    Unfortunately, the standard SOAP Adapter supports only certain SOAP Header Information (like User Authentication or Certificate Authentication).
    Is it possible to extend the SOAP Header Information in the SOAP Adapter (or somewhere else in XI) beyond the standard configurations?
    Thanks for your support.
    Alexander Bange

    Hi Jin,
    thanks for your input and sorry for my late reply but I wanted to wait for feedback from SAP who actually confirmed your recommendation.
    I had a second thought about this and it came to my mind that I actually don't want to extend the SOAP Header elements but simply fill the mentioned authentication elements with values. This cannot be done in the message mapping as only the SOAP body elements (i.e. the payload) can be mapped.
    Do you know if and how I can fill the SOAP header elements with values in XI?
    I already tried to include this information as fixed values in the WSDL description and load it into XI. Then I looked into the WSDL description and an error message occured stating that XI could not parse the XML Document (Fatal Error: com.sap.engine.lib.xml.parser.ParserException:  = expected in attlist(:main:, row:18074, col:54)).
    If there is no solution for the latter, I will have to try nosoap solution. Still this would be a little awkward.
    Thanks again for your valuable support.
    Best Regards.
    Alex

  • Archiving of Soap header part for a synchronous interfaces

    We have a requirement where we have to retain the soap header details for a longer period for tracking purpose. So is there any option of archiving only soap header part from the message for a synchronous interface.
    More Information about the requirement:
    1. We will be passing some parameters to the XI Soap header.
    2. In the WSDL we will add the header fields, so that the end system can populate them.This is done for tracking and searching the message, end to end.
    3.  Another thing to note, is that, for synchronous messages the payload will not be available (without enabling logging), Can we search the messages using the values in the header?
    4. The above process is done, keeping in mind that when the messages are archived, the XI soap header will be the only thing that will be archived and not the whole payload, and the messages that are archived can be searched or retrieved based on the values in the XI Soap header.
    Regards
    Nitya

    Hi,
    Glad to hear that you solve this issue, thanks for your sharing.
    Thanks,
    Linda Li
    Linda Li
    TechNet Community Support

  • Retrieving the SOAP Header

    Hi All,
    I am getting SOAP Header as follows:
    <soap:Header>
    <m:userName xmlns:m="http://www.w3schools.com/transaction/"
         soap:mustUnderstand="1">Prod5</M:trans>
    <m:passWord xmlns:m="http://www.w3schools.com/transaction/"
         soap:mustUnderstand="1">objectc</m:trans>
    </soap:Header>
    My Question is this:
    I implmented a SOAP Handler, How can I retrieve the value of element userName
    which in this case is Prod5. I am doing something like this:
    soapEnvelope.getHeader().getAttributeValue(name);
    wherein, I defined name as follows:
         Name name = soapEnvelope.createName("userName");
    Is this the rightway of doing.
    Thanks
    ---Radhe

    Hi Radhe,
    It may look something (~) like this:
    SOAPMessageContext ctx = (SOAPMessageContext) c;
    SOAPMessage msg = ctx.getMessage();
    SOAPPart sp = msg.getSOAPPart();
    SOAPEnvelope se = sp.getEnvelope();
    SOAPHeader header = se.getHeader();
    Iterator it = header.getChildElements(se.createName("userName"));
    SOAPElement elem = (SOAPElement) it.next();
    String user = elem.getValue();
    Hope this helps,
    Bruce
    Radhe wrote:
    >
    Hi All,
    Sorry about the earlier post
    Hi All,
    I am getting SOAP Header as follows: <soap:Header> <m:userName xmlns:m="http://www.w3schools.com/transaction/"
    soap:mustUnderstand="1">Prod5</m:userName>
    <m:passWord xmlns:m="http://www.w3schools.com/transaction/" soap:mustUnderstand="1">objectc</m:passWord>
    </soap:Header>
    My Question is this:
    I implmented a SOAP Handler, How can I retrieve the value of element userName
    which in this case is Prod5. I am doing something like this:
    soapEnvelope.getHeader().getAttributeValue(name);
    wherein, I defined name as follows: Name name = soapEnvelope.createName("userName");
    Is this the rightway of doing.
    Thanks ---Radhe

  • Is there a way to get SOAP header in bpel?

    Hi,
    My web service returns a SessionID contained in the SOAP header. In Oracle PM, is there a way I could extract the SOAP header, or manipulate the SOAP header when invoking the web services? Any information would be appreciated.
    Thanks!
    Feng

    Edwin,
    I was trying your second approach, which utilizes the bpel extension to hold the header info, but with no luck.
    The provided sample (Salesforce Flow) works well, and I can see the SOAP header using TCPMonitor. Then I created a simple echo service (using bpel) to replace the Salesforce.com Enterprise Web Services, and invoke the echo service from a bpel process with the same bpel extension. However, no header was sent out.
    I guess there are something I was missing. Attached please find the wsdl file of the echo service, as well as the bpel files. Could you give me some idea what I did wrong? Or do you have any documentation about the bpel extensions?
    Thanks a lot for the good support!
    Feng
    echo.wsdl
    <?xml version="1.0"?>
    <definitions name="echo"
    targetNamespace="http://acm.org/samples"
    xmlns:tns="http://acm.org/samples"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    >
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TYPE DEFINITION - List of types participating in this BPEL process
    The BPEL Designer will generate default request and response types
    but you can define or import any XML Schema type and use them as part
    of the message types.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <types>
    <schema attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://acm.org/samples"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="echoRequest">
    <complexType>
    <sequence>
    <element name="input" type="string"/>
    </sequence>
    </complexType>
    </element>
    <element name="echoResponse">
    <complexType>
    <sequence>
    <element name="result" type="string"/>
    </sequence>
    </complexType>
    </element>
    <!-- Header Elements -->
    <element name="SessionHeader">
    <complexType>
    <sequence>
    <element name="sessionId" type="xsd:string"/>
    <element name="InvokeID" type="xsd:string"/>
    </sequence>
    </complexType>
    </element>
    <element name="QueryOptions">
    <complexType>
    <sequence>
    <element name="batchSize" type="xsd:int" />
    </sequence>
    </complexType>
    </element>
    <element name="SaveOptions">
    <complexType>
    <sequence>
    <element name="autoAssign" type="xsd:boolean"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    </types>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    MESSAGE TYPE DEFINITION - Definition of the message types used as
    part of the port type defintions
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <message name="echoRequestMessage">
    <part name="payload" element="tns:echoRequest"/>
    </message>
    <message name="echoResponseMessage">
    <part name="payload" element="tns:echoResponse"/>
    </message>
    <!-- Header Message -->
    <message name="Header">
    <part element="tns:SessionHeader" name="SessionHeader"/>
    <part element="tns:SaveOptions" name="SaveOptions"/>
    <part element="tns:QueryOptions" name="QueryOptions"/>
    </message>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PORT TYPE DEFINITION - A port type groups a set of operations into
    a logical service unit.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- portType implemented by the echo BPEL process -->
    <portType name="echo">
    <operation name="process">
    <input message="tns:echoRequestMessage" />
    <output message="tns:echoResponseMessage"/>
    </operation>
    </portType>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PARTNER LINK TYPE DEFINITION
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <plnk:partnerLinkType name="echo">
    <plnk:role name="echoProvider">
    <plnk:portType name="tns:echo"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    echo.bpel
    <!-- echo BPEL Process [Generated by the Oracle BPEL Designer] -->
    <process name="echo" targetNamespace="http://acm.org/samples" suppressJoinFailure="yes" xmlns:tns="http://acm.org/samples" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension">
         <!-- ================================================================= -->
         <!-- PARTNERLINKS -->
         <!-- List of services participating in this BPEL process -->
         <!-- ================================================================= -->
         <partnerLinks>
              <!-- The 'client' role represents the requester of this service. -->
              <partnerLink name="client" partnerLinkType="tns:echo" myRole="echoProvider"/>
         </partnerLinks>
         <!-- ================================================================= -->
         <!-- VARIABLES -->
         <!-- List of messages and XML documents used within this BPEL process -->
         <!-- ================================================================= -->
         <variables>
              <!-- Reference to the message passed as input during initiation -->
              <variable name="input" messageType="tns:echoRequestMessage"/>
              <!--
    Reference to the message that will be returned to the requester
    -->
              <variable name="output" messageType="tns:echoResponseMessage"/>
         </variables>
         <!-- ================================================================= -->
         <!-- ORCHESTRATION LOGIC -->
         <!-- Set of activities coordinating the flow of messages across the -->
         <!-- services integrated within this business process -->
         <!-- ================================================================= -->
         <sequence name="main">
              <!-- Receive input from requester.
    Note: This maps to operation defined in echo.wsdl
    -->
              <receive name="receiveInput" partnerLink="client" portType="tns:echo" operation="process" variable="input" createInstance="yes"/>
              <!-- Generate reply to synchronous request -->
              <assign>
                   <copy>
                        <from expression="concat('echo: ', bpws:getVariableData(&quot;input&quot;, &quot;payload&quot;, &quot;/tns:echoRequest/tns:input&quot;))">
                        </from>
                        <to variable="output" part="payload" query="/tns:echoResponse/tns:result"/>
                   </copy>
              </assign>
              <reply name="replyOutput" partnerLink="client" portType="tns:echo" operation="process" variable="output"/>
         </sequence>
    </process>
    bpel process that invokes the echo service
    <!-- testHeader6 BPEL Process [Generated by the Oracle BPEL Designer] -->
    <process name="testHeader6" targetNamespace="http://acm.org/samples" suppressJoinFailure="yes" xmlns:tns="http://acm.org/samples" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension">
         <!-- ================================================================= -->
         <!-- PARTNERLINKS -->
         <!-- List of services participating in this BPEL process -->
         <!-- ================================================================= -->
         <partnerLinks>
              <!-- The 'client' role represents the requester of this service. -->
              <partnerLink name="client" partnerLinkType="tns:testHeader6" myRole="testHeader6Provider"/>
              <partnerLink name="echo" partnerLinkType="tns:echo" partnerRole="echoProvider"/>
         </partnerLinks>
         <!-- ================================================================= -->
         <!-- VARIABLES -->
         <!-- List of messages and XML documents used within this BPEL process -->
         <!-- ================================================================= -->
         <variables>
              <!-- Reference to the message passed as input during initiation -->
              <variable name="input" messageType="tns:testHeader6RequestMessage"/>
              <!--
    Reference to the message that will be returned to the requester
    -->
              <variable name="output" messageType="tns:testHeader6ResponseMessage"/>
              <variable messageType="tns:echoRequestMessage" name="i2"/>
              <variable messageType="tns:echoResponseMessage" name="o2"/>
              <variable name="header" messageType="tns:Header"/>
         </variables>
         <!-- ================================================================= -->
         <!-- ORCHESTRATION LOGIC -->
         <!-- Set of activities coordinating the flow of messages across the -->
         <!-- services integrated within this business process -->
         <!-- ================================================================= -->
         <sequence name="main">
              <!-- Receive input from requester.
    Note: This maps to operation defined in testHeader6.wsdl
    -->
              <receive name="receiveInput" partnerLink="client" portType="tns:testHeader6" operation="process" variable="input" createInstance="yes"/>
              <!-- Generate reply to synchronous request -->
              <assign>
                   <copy>
                        <from expression="12345">
                        </from>
                        <to variable="i2" part="payload" query="/tns:echoRequest/tns:input"/>
                   </copy>
                   <copy>
                        <from expression="1111">
                        </from>
                        <to variable="header" part="SessionHeader" query="/tns:SessionHeader/tns:sessionId"/>
                   </copy>
              </assign>
              <invoke partnerLink="echo" portType="tns:echo" operation="process" inputVariable="i2" bpelx:inputHeaderVariable="header" outputVariable="o2"/>
              <reply name="replyOutput" partnerLink="client" portType="tns:testHeader6" operation="process" variable="output"/>
         </sequence>
    </process>

Maybe you are looking for

  • How can I use hotspot click in an ALV grid?

    Hello, I have a table that is displayed in an ALV grid and I would like to have one of the columns as clickable icons. For example: Print  |  Doc. Type | Name (icon) |   .docx      | first (icon) |   .pdf         | second ... and so on. I would like

  • Need to send file to a server... help/

    Hello, I need to upload a piece of music to a server in Germany. I've cut and pasted the link (ftp.... etc) and it's loaded up into the side of my finder window. I can see other files in there but whenever i try and drag and drop my file in it say's

  • Why such different file sizes?

    I have made a couple videos using iMovie. Why is it that one movie is 14 GB and the other one is 40GB. They are both 30 minutes long and the shorter one actually has more transitions, the second one may have more shorter clips, is that the reason? Ju

  • Regarding mandatory IDOC segments and fields!

    Hello all, I am working with an IDOC interface (material price change). IDOC type is MATERIALVALUATION_PRICECHANG01. When we go to WE60 for this IDOC type, SAP has marked all segments as optional for some reason. But I am trying to figure out which f

  • Adding additional tab in crm_order sales

    hello experts, kindly let me know how to add an additional tab & some custom fields to that tab in crm_order sales using BADI. plz do the need full.. bye-- Deepa