How modify SOAP Namespace on ABAP WS

Hi Experts,
I need to modify namespace on the web service, I have to provide this WS from an ABAP AS 7.0 SP10 (we don't have XI or PI infrastructure) and the request generated from SAP WSDL is like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soap:Body>
<urn:GetExAvailability>
</urn:GetExAvailability>
is it possible to change the namespace urn="urn:sap-com:document:sap:soap:functions:mc-style" with customer namespace and cancel the prefix "urn" before the WS name "GetExAv..."?
From Service Definition in the transaction SE80 the SOAP NameSpace is read only, but the customer that have to call this WS, can olnly post a request(they say that can't modify their standards) like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExAvailability xmlns="http://www.customercompany.de/">
</GetExAvailability>
Any help would be greatly appreciated.
Thanks!
Regards,
Max.

Hi Max,
we are facing a similar problem and would like to change a namespace from "urn:sap-com:document:sap:soap:functions:mc-style" to "urn:sap-com:document:sap:rfc:functions"
Did you find a solution to the problem?
I found the explanations on how the the different namespaces work, but there is no documentation on where this namespace is configured or how to change it.
Any help would be greatly appreciated.
Thanks,
Fabian

Similar Messages

  • Modify SOAP Namespace for ABAP WS

    Hi Experts,
    I need to modify namespace on the web service, I have to provide this WS from an ABAP AS 7.0 SP10 (we don't have XI or PI infrastructure) but the request generated from SAP WSDL is like this:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
       <soap:Body>
          <urn:GetExAvailability>
         </urn:GetExAvailability>
    is it possible to change this name space urn="urn:sap-com:document:sap:soap:functions:mc-style" and the prefix "urn" before "GetEx..."?
    From Service Definition in the transaction SE80 the SOAP NameSpace is read only, but the customer that have to use this WS, use a request(that they can't modify) like this:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <GetExAvailability xmlns="http://www.aaaaaa.de/">
        </GetExAvailability>
    Any help would be greatly appreciated.
    Thanks!
    Regards,
    Max.

    Hi Max,
    we are facing a similar problem and would like to change a namespace from "urn:sap-com:document:sap:soap:functions:mc-style" to "urn:sap-com:document:sap:rfc:functions"
    Did you find a solution to the problem?
    I found the explanations on how the the different namespaces work, but there is no documentation on where this namespace is configured or how to change it.
    Any help would be greatly appreciated.
    Thanks,
    Fabian

  • Modify SOAP header in ABAP for 3rd party WSDL

    Hi SDN,
    I want to consume a 3rd party WSDL in ABAP. I have created the proxy through SE80, and created the logical port through LPCONFIG. The WSDL I'm using needs me to include some authentication (developer key, and password) in the header portion of the SOAP message. Example below.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://api.channeladvisor.com/webservices/">
       <soapenv:Header>
          <web:APICredentials>
             <web:DeveloperKey>XXX</web:DeveloperKey>
             <web:Password>XXX</web:Password>
          </web:APICredentials>
       </soapenv:Header>
       <soapenv:Body>
          <web:DoesSkuExist>
             <web:accountID>XXX</web:accountID>
             <web:sku></web:sku>
          </web:DoesSkuExist>
       </soapenv:Body>
    </soapenv:Envelope>
    How can I edit the SOAP header to include this information so that this WSDL will work when I call it? There must be a better way than hardcoding the SOAP call and using an HTTP client call.
    I've looked in google and SDN and haven't been able to find a good answer to this problem.
    Thanks guys.

    Have a search in SDN for "if_wsprotocol_ws_header" - there are several postings and examples and if you goto SE24 and look at the documentation attached to IF_WSPROTOCOL you can get to the example referred to in some of the SDN postings.  I also found "real" examples in SAP e.g. function group FITP_SABRE_WS, and I got it to work OK (eventually) after browsing some of these.
    Jonathan

  • How to modify a namespace

    hi to all!
    We have a namespace in our system, and my manager wants me to research on how to update a namespace, as what I've researched, I need to go to se03 then change namespace, I did that and I transported it last friday,,, however up to now, It did not have any changes....
    My question is, how to update our existing namespace?
    Thanks!
    Edited by: christopher mancuyas on Sep 22, 2008 12:00 PM

    For modifying a namespace you need a key . This key is in the hands of the company that creates the application.
    There are two keys one for creating the namespace and other for modyfiing the code. You need to insert the second code and activate in the system.
    http://help.sap.com:80/saphelp_nw04s/helpdata/en/bd/ddbe08ac5c11d2850e0000e8a57770/frameset.htm
    Often the namespace is created by SAP others non. It's difficult change code from namespaces  of other companies

  • Changing SOAP Namespace for Web Service

    Hi Experts,
    Got a requirement to modify the SOAP namespace for a BAPI program exposed as a web service on SAP.
    The fieldd denoting the SOAP namespace is accessible via transaction SE80 and navigating under: Package Name>Enterprise Services>Service Definitions> and double clicking on the exposed web service and selecting "Properties".
    The SAP SOAP namespace provided by default is: urn:sap-com:document:sap:rfc:functions
    Is anyone aware of a means to modify this namespace on the web service? Any help would be greatly appreciated. Thanks!
    Regards,
    Lionel

    hi tan,
    Although the SOAP Runtime is generally designed for RFC-type calls, it can also be used to access Web Services that are not implemented in a Web AS. For example, the Google search engine offers some services using SOAP, which can be accessed from the SAP Web AS.
    Naming Conventions
    The SOAP Runtime offers three methods of representing the original ABAP names (everything in upper case and separated by underscores) as data types in XML. Each method is associated with a different XML namespace:
    urn:sap-com:document:sap:rfc:functions – this is the canonical representation, which means that all names in the XML document are represented as they are in ABAP on a 1:1 basis. For repeating groups (such as the rows of a table), an XML element with the tag name item is generated (in writing) and expected (in parsing).
    urn:sap-com:document:sap:soap:functions:uc-style – this naming convention is similar to the first one, with the difference that instead of item, the name of the structure of the table row is generated or expected.
    urn:sap-com:document:sap:soap:functions:mc-style – this third convention also involves conversion of the upper case ABAP names to mixed case (both upper and lower case), according to the following algorithm: All characters except the first one are implicitly in lower case, and the underscore acts as a Shift key to effect an upper case character. RFC_SYSTEM_INFO thus becomes RfcSystemInfo. The addition of an initial underscore makes the first character lower case: RFCSYSTEM_INFO thus becomes rfcSystemInfo. An underscore character is transferred by adding an additional underscore: RFC__SYSTEM_INFO thus becomes Rfc_systemInfo.
    When using the SOAP Runtime caller side, note the following points regarding the naming convention:
    If the called Web Service is implemented in the Web AS 6.20, always use the namespace convention urn:sap-com:document:sap:rfc:functions. The namespace for the SOAP method must also be set according to this convention. To do this, specify the importing parameter nsvalue of the method set_method in the class CSoapDocument.
    Setting the namespace of the naming convention for the SOAP method does NOT automatically mean that the SOAP Runtime also sets the naming convention for serialized SOAP messages. As a developer, you must ensure that the naming conventions are followed. To do this, you can use the methodsset_tag_name_format and set_item_name_format:
    The method set_tag_name_format of the class CSoapDokument can be used to control the upper case or mixed case naming convention for tags that correspond to ABAP data types. To activate the normal ABAP format (upper case), use the value CSoapConstants=>ic_tagfmt_default for the importing parameter format. To switch to the mixed format, use the value CSoapConstants=>ic_tagfmt_mixcase.
    The method set_item_name_format of the class CSoapDokument is used to control the use of the tag name for repeating groups in ABAP data types (table rows). To implement the structure name of the table row, set the value CSoapConstants=>ic_itemfmt_default for the importing parameter format.  To use item as a tag, set the value CSoapConstants=>ic_itemfmt_useitem.
    All names passed to the API must be in a format that is expected by the server side. This affects the importing parameter name of both the methods set_method and add_parameter of the class CSoapDocument. The SOAP Runtime caller side does not perform any conversion of these names. The document class on the calling side does NOT take into account the namespace you have selected here.
    You should only implement the mixed case naming convention where it is necessary. This particularly applies when calling external Web Services, over the structure of which you have no control.
    Sending the SOAP Header in the Call
    The SOAP Framework does not provide general support for the handling of SOAP Header elements.
    However, for calling external Web services, it is sometimes sufficient to be able to send simple Header entries as part of the request. In this special case, you can use the class CSoapDocumentHeader.
    An instance of the class can be filled using the methods set_header_as_string or set_header_as_dataref. Using the method add_header, it can then be added to an instance of the class CSoapDocument, and is then serialized as a part of the document instance when the call is made.
    regards
    karthik
    dont forgrt to reward me points if it helps u

  • How  Sender SOAP Adapter will retriew the data  to process further

    How  Sender SOAP Adapter will  receive the data  to send the integration server to process further

    Hi,
    1. All details are always taken from the Sender Agreement.
    For the Sender File adapter and the Sender SOAP adapter , the details that include are , Sender Service, Sender Interface Name and namespace and these are the details that make up the SOAP header when the message hits the integration Engine.
    Once the corresponding Adapter for the message is identified, ie. the Sender SOAP adapter , the message for the SOAP header is then taken from the Sender Agreement of that adapter. This is the exact reason why one Sender Adapter can be involved in one and only one Sender Agreement.
    Regards
    Bhavesh

  • Get Message ID and namespace from ABAP Mapping

    Hi XI Expert,
    Please advise how to get the message ID and namespace from ABAP Mapping.
    Thank You and best Regards
    Fernand

    Hi,
    To access the message ID, use the method GET_MESSAGE_ID of the controller object:
           1.      Fetch a protocol instance for the protocol IF_WSPROTOCOL_MESSAGE_ID.
           2.      To have the system return the message ID after the sender has sent a request message or the receiver has received a request message, use the method GET_MESSAGE_ID of this instance. This returns the ID by using the parameter MESSAGE_ID of type SXMSGUID.
    Also you could do the same by this way also:
    IF_WSPROTOCOL_XI_HEADER
    has attributes messageid and interface namespace.
    using this  you can read the XI message header

  • How to find Namespaces used.

    hi guys,
    My customer is using Namespaces in ABAP development. but not sure where and whats the name of it. How can i find custom developed objects are used in Customer namespace in ABAP.
    Any specific transaction or table used for saving Namespaces..?
    please suggest me.
    Thanks.
    Baasha,

    hey guys
    Thanks for your replies.
    i dont have SE21 transaction. I am now at 46C.
    whats this transaction about.
    It looks like customer using Z,Y programs in other Namespaces like
    /XXX/ etc.
    so need to find what other namespaces they are using for storing addon objects.
    Thanks
    Baasha

  • How to copy/download  all ABAP programs in a text with a single report  ?

    How to copy/download  all ABAP programs in a text format with a single report/TC  ?
    How to copy/download  ABAP source code with all include programs ?....
    we need to search & copy all include programs everytime....

    Hi,
    check this link
    downloading programs
    Regards

  • How to define namespace with one XSD using in two different DB-Locations ?

    I'm not clear,How to define namespace, targetnamespace, schemaLocation or NoNamespaceSchemaLocation
    when using one common schema.xsd-definition
    in two different database-locations for exchange xml-documents?
    when insert xml-document I've got an error ORA-30937
    do you have an good exsample ?
    thanks
    Norbert
    schema :
    <xs:schema
    xmlns="http://sourcehost.com/namespace"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:oraxdb="http://xmlns.oracle.com/xdb"
    targetNamespace="http://sourcehost.com/namespace"
    xml-document :
    xmlns="http://Sourcehost.com/namespace"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:SchemaLocation="http://sourcehost.com/namespace http://desthost:8080/sys/schemas/PUBLIC/ADRESSEN.XSD">
    SQL> insert into ADRESSEN values
    (XMLType
    (bfilename ( 'XMLIMPORT_DIR', 'adressen.xml')
    , 0 )
    --> error :
    ORA-30937: No Schemadefinition for "SchemaLocation" (Namespace "http://www.w3.org/2001/XMLSchema-instance") in übergeordnetem Knoten "/ADRESSEN"

    Norbert
    The schema location used to register the XML schema with XML DB does not need to be a valid URL for accessing the XML Schema
    I can use the same URL , for instance
    http://xmlns.example.scom/xsd/myXMLSchema.xsd
    on machines dbserver1, and dbserver2. The only reason some people choose to use the hostname / portnumber convention is that this makes it possible to validate the XML Instance documents against the copy of the XML schema stored in the XML DB repository using an external tool like XMLSpy without have to add entries to XMLSpy's OASIS catalog files.
    I am concerned about the message you are getting. That's not correct AFAICT but I'd need to see the complete XML Schema and Instance to be sure.

  • How to remove namespaces in mapping when using External Definition

    Hi,
    I read in the blog (/people/sameer.shadab/blog/2005/12/05/how-to-remove-namespaces-in-mapping--xi) that you are able to remove namespaces in mapping by deleting the value from XML Namespace under the Message Type. However, is it possible to do this when you are using External Definition (xsd) ? The blog only describe how to do this if you define a Data Type.

    Hi ,
    No ..it is not possible to remove the namespace once you imported into IR of external defintion.You can remove your namesapce from external definition before importing into IR.
    Sekhar

  • How to call Webservice in abap Program

    Hi Guys,
    How can i call a abap webservice located in another server(CRM) in Bpc BADI.Is this web service is thing is possible??

    Hi,
    For calling a web service first you have to Create Proxy object using web service URL or WSDL file.
    and create logical port for that URL.
    This will generate Class and method in your system.
    After that you can use this class and method to call this web service.
    Regards,
    Arpit

  • Why and how to use events in abap objects

    Dear all,
      Please explain me why and how to use events in abap objects with real time example
    regards
    pankaj giri

    Hi Pankaj,
    I will try to explain why to use events... How to use is a different topic.. which others have already answered...
    This is same from your prev. post...
    Events :
    Technically speaking :
    " Events are notifications an object receives from, or transmits to, other objects or applications. Events allow objects to perform actions whenever a specific occurrence takes place. Microsoft Windows is an event-driven operating system, events can come from other objects, applications, or user input such as mouse clicks or key presses. "
    Lets say you have an ALV - An editable one ...
    Lats say - Once you press some button  you want some kind of validation to be done.
    How to do this ?
    Raise an Event - Which is handled by a method and write the validation code.
    Now you might argue, that I can do it in this way : Capture the function code - and call the validate method.
    Yes, in this case it can be done.. But lets say .. you change a field in the ALV and you want the validation to be done as soon as he is done with typing.
    Where is the function code here ? No function code... But there is an event here - The data changed event.
    So you can raise a data changed event that can be handled and will do the validation.
    It is not user friendly that you ask the user to press a button (to get the function code) for validation each time he enters a data.
    The events can be raised by a system, or by a program also. So in this case the data changed event is raised by a system that you can handle.
    Also, Lets say on a particular action you want some code to trigger. (You can take the same example of validation code). In this case the code to trigger is in a separate class. The object of which is not available here at this moment. (This case happens very frequently).
    Advantage with events : Event handlers can be in a separate class also.
    e.g : In the middle of some business logic .. you encounter a error. You want to send this information to the UI (to user - in form of a pop up) and then continue with some processing.
    In many cases - A direct method call to trigger the pop up is not done. Because (in ideal cases) the engine must not interact with UI directly - Because the UI could be some other application - like a windows UI but the error comes from some SAP program.
    So - A event is raised from the engine that is handled in the UI and a pop up is triggered.
    Here -- I would have different classes (lets say for different Operating Systems). And all these classes must register to the event ERROR raised in application.
    And these different classes for different Operation systems will have different code to raise a pop-up.
    Now you can imagine : If you coded a pop-up for Windows (in your application logic) .. it will not work for Mac or Linux. But of you raise a event.. that is handled separately by a different UI classes for Win, Linux or Mac  they will catch this event and process accordingly.
    May be I complicated this explanation .... but I couldn't think of a simpler and concrete example.
    Cheers.
    Varun.

  • How to create popup in ABAP webdynpro.

    Hi,
    I found lot of examples to create a popup/ model window for java webdynpro.
    Could anyone give a pointer to an example which explains how to create popup in ABAP webdynpro??
    Kind Regards
    Shahul

    Hi Thomas:
    It worked fine the 1st time. Second time when the user clicks on the button to open up the popup it dumps.
    Here is the code in the action for popup:
    data: l_cmp_api type ref to if_wd_Component,
            l_window_manager type ref to if_wd_window_manager,
            l_api type ref to if_wd_View_controller,
            l_text type string_table.
      l_cmp_api = wd_comp_controller->wd_get_api( ).
      l_window_manager = l_cmp_api->get_window_manager( ).
      if wd_this->m_popup is initial.
        wd_this->m_popup = l_window_manager->create_window(
                 window_name = 'DOCQSOW'
                 button_kind = if_wd_window=>co_buttons_ok
                 message_type = if_wd_window=>co_msg_type_none ).
               component_usage_name = 'DOCQUERY_USAGE_1'
        l_api = wd_this->wd_get_api( ).
        wd_this->m_popup->subscribe_to_button_event(
              button = if_wd_window=>co_button_ok
              button_text = 'Transfer'
              action_name = 'POPUP_CLOSED'
              action_view = l_api  ) .
        wd_this->m_popup->SET_REMOVE_ON_CLOSE( abap_true ).
       endif.
      wd_this->m_popup->open( ).
    Second time when the popup tries to open, I get the following error:
    Method: RENDER_WINDOW of program CL_WDR_WINDOW_RENDERER========CP
    Method: RENDER_WINDOW of program CL_WDR_CLIENT_SSR=============CP
    Method: RENDER_POPUP_WINDOWS of program CL_WDR_CLIENT_SSR=============CP
    Method: RENDER_WINDOWS of program CL_WDR_CLIENT_SSR=============CP
    Method: IF_WDR_RESPONSE_RENDERER~RENDER_VIEWS of program CL_WDR_CLIENT_SSR=============CP
    Method: IF_WDR_RESPONSE_RENDERER~RENDER_USER_INTERFACE_UPDATES of program CL_WDR_CLIENT_SSR=============CP
    Method: IF_WDR_CLIENT~SEND_RESPONSE of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
    Method: IF_WDR_CLIENT~SEND_RESPONSE of program CL_WDR_CLIENT_SSR=============CP
    Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
    Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP
    Is there a way to destroy the instance of the m_popup?
    Any help is appreciated!
    Thanks

  • How to add breakpoint in abap code

    when use <i><b>java</b></i> call abap code ,
    how to add breakpoint in abap code?

    Hi,
    To start the ABAP debugger from your java client you have to set the JCO client to debug mode:
    e.g.
    yourJCOClient.setAbabDebugMode(true)
    (hope thats the right method name:-)).
    And don't forget to set also a break point of type "External" in the function module you call from your java client. For debuging, the user which calls the FM has to be a SAP User of type "<b>Dialog"</b> and has to be the rights to call RFCs, ...

Maybe you are looking for