Changing HTTP header paramter

Hi All,
We are trying to connect to a legacy system from SAP PI, however while sending the request we are getting the following error:
"HTTP server code 415 reason Unsupported Media Type explanation Unsupported Media Type". After looking into the issue we found that the Content type that is set by default in HTTP adapter is "content-type: text/xml; charset=UTF-8".
However the content type expected by our legacy system is only "content-type: text/xml".
We have been able to achieve this by using SOAP adapter. However we have not found a way to handle this in HTTP adapter.
Any clues as to how to handle this in HTTP adapter only?
Thanks in advance.
Regards,
Sanjeev.

> We have been able to achieve this by using SOAP adapter. However we have not found a way to handle this in HTTP adapter.
> Any clues as to how to handle this in HTTP adapter only?
This is not possible as it is hard coded.
Maybe you can write an OSS ticket to get thos changed.
XML usually has its own encoding declaration, so it is not useful to have it in an http header.

Similar Messages

  • How do I change the content-type in http header when using JAX-WS?

    I need to change Content-Type in http Header. I am using JAX-WS to invoke web service call. Can someone tell me how to do it? Thanks a lot!

    LabVIEW does so many wonderful things, but the inability to perform what should be a simple task, such as upgrade a RT chassis within a LV Project, bewilders me. This is going to cost me hours, I just know it...
    Is there anything on the Idea Exchange for this?? A quick search shows nothing, so maybe I'll add an entry.
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

  • Single-Sign-On (SSO) configuration on JAVA Stack through HTTP Header method

    Hello SDN community,
    in the context of a Proof of Concept, we are testing the integration of Microsoft Sharepoint Portal with SAP Backend (addin) systems.
    As the architecture impose use an external scenario (access from the internet), we couldn't use the Kerberos (SPNego) solution and thus we chosed the http header solution which in short uses an intermediary web server (in this case the IIS of the MOSS solution) which will act as authority.
    I miss information on how the workflow works for this http header authentication method. Through the visual administrator of the addin JAVA stack, it is possible to configure each application with a customized authentication (a choice of security modules). But this all that I know.
    My task is to configure SSO. From a sharepoint portal, the user should be able to access Web Dynpros and BSPs. I imagine that the very first call to a webdynpro or bsp (or maybe when we log on the sharepoint portal), the request to the WDP or BSP will first be forwareded by the intermediary server to the JAVA stack (or is it the SAP dispatcher that has to be configured).
    Is there an application to be built on the java stack to deal with the authentication, modify http header?
    What will the Java stack return? a sap long ticket? a token?
    How will the redirect work (to by example a BSP which is in the ABAP stack)?
    SAP preconise to secure with SSL the link between the intermediary web server and the JAVA stack, is IP restriction also a solution?
    A lot of questions about how this SSO http header should work,
    I would be very greatful for any help, or info,
    Kind regards,
    Tanguy Mezzano

    Hi Tanguy,
    to tell you the truth I'm really unsure about what you are trying to achieve. When I started posting to your thread I thought all you wanted was trying to access your J2EE engine via Browser and authenticate against the engine using HTTP Header Variables. Nevermind:
    Here are some answers to your question:
    in fact I did succeed, the problem was that even after domain-relaxation done by the J2EE, I had to change the domain of th SAP cookie to the bbbb.domain.com to be understood (I would have thought that all hosts in/under domain .domain would have accepted such a cookie but it seems that no...).
    The server does not care about the domain because Cookies in an HTTP Request do not contain any domain information. The domain is just important when the Cookie is set by the server so your Client (Browser) will know in which cases the Cookie may be sent or not. So if your domain is xxx.yyy.domain.com and your cookie is issued to .domain.com then your Browser will definitely sent it to all hosts under .domain.com (This includes xxx.yyy.domain.com etc.)
    My current scenario is: in a first request get a SAP Logon Ticket from the Java Stack, then change its domain and then directly call the backend with it.
    You can do that but there is no Client involved in this scenario. So this is useful if you just want to test the functionality (e.g. authentication to J2EE using Header Variables (This works finally!!!) and then use the fetched Logon Ticket to test SSO against any trusted Backend!!)
    So everything's is in a Java Client application without using any redirection.
    If I understand you, you're solution is from the Browser call a servlet (which is deployed on the Java Stack and has no authentication schema) by passing to it our http header.
    No, you should initially authenticate somewhere! I thought that maybe you had some resource you access before accessing the Java Stack. This could be any application (e.g. deployed on a Tomcat or JBOSS or other server or if you like even SAP J2EE). After authenticating there you are aware of the username and could use it to  procceed (e.g. Authenticate against the J2EE using the same user and HTTP Header authentication for that particular user!)
    That servlet will transfer the http header (with the HttpClient app) in order to get from the Java Stack a SAP Logon ticket, and then to redirect to the resource and by sending back the cookie in client browser. Am I correct?
    This was just a suggestion because I realized that there was no Client ever involved in any of your testing (looked strange to me!). I was just thinking that it would be easier for you to just get the Cookie into your Browser so your Browser would do the rest for you (in your case finally send the Logon Ticket Cookie to your Backend to test SSO using Logon Tickets!).
    The AuthenticatorServlet somehow serves as a Proxy to your client because your client is not able to set the Header Variable. That's why I initially suggested to use a Proxy (e.g. Apache) for that purpose. The problem is just that if you use a Proxy you will have to tell it somehow which username it should set in the Header Variable (e.g. using a URL Parameter or using a personalized client certificate and fetch the username (e.g. cn=<username> from the certificate!)
    This way of doing would simplify the calls for sso for each new application needing authentication, instead of having all code each time in it...
    I'm stuck again! Do you want to authenticate an End User or do you want to authenticate an application that needs to call any resources in your Backend that requires authentication?
    So my problem now, is how to call the servlet from the client browser:
    I'm trying to call my servlet from the browser but I don't succeed. I am able to understand how to reach a jsp from the Java Stack, but not to reach a servlet. I don't find the path to my servlet:
    <FORM method="POST" action="SSORedirect2" >
    A JSP is a servlet too. There is just no JAVA Class involved!
    You do not need any POST Request to invoke a Servlet.
    I see that my servlet is deployed, but I don't how what path to give to my form to invoke the servlet, here follows my web.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE web-app (View Source for full doctype...)>
    - <web-app>
      <display-name>WEB APP</display-name>
      <description>WEB APP description</description>
    - <servlet>
      <servlet-name>SSOredirect2</servlet-name>
      <servlet-class>com.atosorigin.examples.AuthenticatorServlet</servlet-class>
      </servlet>
    - <servlet>
      <servlet-name>SSORedirect2.jsp</servlet-name>
      <jsp-file>/SSORedirect2.jsp</jsp-file>
      </servlet>
    - <security-constraint>
      <display-name>SecurityConstraint</display-name>
    - <web-resource-collection>
      <web-resource-name>WebResource</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
      </web-resource-collection>
    - <auth-constraint>
      <role-name>DefaultSecurityRole</role-name>
      </auth-constraint>
      </security-constraint>
    - <security-role>
      <role-name>DefaultSecurityRole</role-name>
      </security-role>
      </web-app>
    If you have an AuthenticatorServlet Class all you need is to add the Servlet Mapping in your web.xml file
    e.g.
    <servlet>
      <description>
      </description>
      <display-name>AuthenticatorServlet</display-name>
      <servlet-name>AuthenticatorServlet</servlet-name>
      <servlet-class>com.atosorigin.examples.AuthenticatorServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>AuthenticatorServlet</servlet-name>
      <url-pattern>/AuthenticatorServlet</url-pattern>
    </servlet-mapping>
    You can directly call the Servlet in your Browser by calling the URL provided in the url-pattern of your Servlet mapping ( in this case /AuthenticatorServlet). The engine will invoke the Class "com.atosorigin.examples.AuthenticatorServlet" in the background and do whatever you defined there!
    I have also to pass my http header and the redirectUrl in the GET request.
    If you like! I just suggested this for testing purposes. As I stated before you need a way to tell your proxy (or in your case AuthenticatorServlet) which user should be set when calling the Engine in order to authenticate using HTTP Header. You could use the URL Paramater to define the user you actually want to use when you set the Header Variable.
    I just introduced the redirectURL because you were talking about redirects all the time. So if you finally want to call the Backend you could define the Backend URL in the redirectURL Parameter and the Servlet will make sure that you are redirected to this location after the whole process!
    Thx for your input very helpful,
    But again 0 points
    Cheers

  • How to change the header of Material BOM in a program for alternative BOM ?

    Requirement: An Inbound IDOC creates /change/delete Alternative Material BOM. The Alternative Material BOM can have alternative values from 1 to 99.
    ISSUE: I am good with CREATE and DELETE BOM. The issue is with CHANGE of header Material BOM. The fields which we need to change in the header is the base quantity, BOM status, Lot Size from and Lot Size to. Please note that I am able to change the item details of the BOM with FM CSAI_BOM_MAINTAIN. I find no FM /BAPI which would change the header of a material BOM.
    Please NOTE that I am using BAPI_MATERIAL_BOM_GROUP_CREATE to create alternative Material BOM. This has a parameter in TABLES called "VARIANTS" which has a field CS_FUNCTION which can have value from NEW/CHG/DEL .Also ,there is another parameter in TABLES called "ITEMASSIGNMENTS" which has a field CS_FUNCTION which can have value from NEW/CHG/DEL which implies this FM will allow us to change the BOM. But this does not work when I use it for CHANGE scenario with CHG value. I debugged this BAPI and observed it requires a STNLR(Bill of Material) value . This field is not there in any of the structure. I am not sure if I am passing the right parameters to it.
    Let me know if the parameters are passed correctly for CHANGE scenario.
    Also let me know if there is any other way(FM/BAPI)  to update the Header of the Material BOM ?
    Here is the code I am using:
    *& Report  ZTEST_S_E
    REPORT  ZTEST_S_E.
    * This code will create a material BoM for the material
    * MAINMATERIAL with the components COMPON1 and COMPON2.
    * Data Declaration
    DATA:
    it_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,
    it_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,
    it_items LIKE bapi1080_itm_c OCCURS 0 WITH HEADER LINE,
    it_matrel LIKE bapi1080_mbm_c OCCURS 0 WITH HEADER LINE,
    it_itemas LIKE bapi1080_rel_itm_bom_c OCCURS 0 WITH HEADER LINE,
    it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
    * Fill the data
    * Material BoM Group Header Data
    CLEAR it_bomgroup.
    it_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.
    it_bomgroup-object_type = 'BOM'.
    it_bomgroup-object_id = 'SIMPLE1'.
    it_bomgroup-bom_usage = '1'. " YOU COULD CHANGE THE BOM USAGE TO YOUR
    *NEEDS
    it_bomgroup-ltxt_lang = sy-langu.
    it_bomgroup-technical_type = ' '.
    it_bomgroup-bom_text = 'Simple BoM - FM'.
    APPEND it_bomgroup.
    * Header Details of the different variants
    CLEAR it_variants.
    it_variants-CHANGE_NO  = '500000000349'.
    it_variants-bom_group_identification = 'BAPI_SMP_COL1'.
    it_variants-object_type = 'BOM'.
    it_variants-object_id = 'SIMPLE1'.
    it_variants-alternative_bom = '01'.
    it_variants-bom_status = '01'.
    it_variants-base_qty = '2.000'.
    it_variants-valid_from_date = sy-datum.
    it_variants-function = 'CHG'.
    APPEND it_variants.
    * Details of the items of the variants
    CLEAR it_items.
    it_items-bom_group_identification = 'BAPI_SMP_COL1'.
    it_items-object_type = 'ITM'.
    it_items-object_id = 'SIMPLE1'.
    it_items-item_no = '0010'.
    it_items-item_cat = 'L'.
    it_items-component = '030790490'.
    it_items-comp_qty = '2'.
    it_items-valid_from_date = sy-datum.
    APPEND it_items.
    CLEAR it_items.
    it_items-bom_group_identification = 'BAPI_SMP_COL1'.
    it_items-object_type = 'ITM'.
    it_items-object_id = 'SIMPLE1'.
    it_itemas-change_no = '500000000138'.
    it_items-item_no = '0020'.
    it_items-item_cat = 'L'.
    it_items-component = '030790490'.
    it_items-comp_qty = '3'.
    it_items-valid_from_date = sy-datum.
    APPEND it_items.
    * Details of the materials of the different variants
    CLEAR it_matrel.
    it_matrel-bom_group_identification = 'BAPI_SMP_COL1'.
    it_matrel-material = '030790490'.
    it_matrel-bom_usage = '1'.
    it_matrel-alternative_bom = '01'.
    APPEND it_matrel.
    * Linking items to the corresponding variants
    CLEAR it_itemas.
    it_itemas-bom_group_identification = 'BAPI_SMP_COL1'.
    it_itemas-sub_object_type = 'ITM'.
    it_itemas-sub_object_id = 'SIMPLE1'.
    it_itemas-super_object_type = 'BOM'.
    it_itemas-super_object_id = 'SIMPLE1'.
    it_itemas-valid_from_date = sy-datum.
    it_itemas-function = 'CHG'.
    APPEND it_itemas.
    * Create variants
    CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
    EXPORTING
    all_error = 'X'
    TABLES
    bomgroup = it_bomgroup
    variants = it_variants
    items = it_items
    materialrelations = it_matrel
    itemassignments = it_itemas
    return = it_return.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    LOOP AT it_return.
    WRITE:/ it_return-type, it_return-id, it_return-number,
    it_return-message.
    ENDLOOP.
    Let me know if the parameters are passed correctly for CHANGE scenario.
    Also let me know if there is any other way(FM/BAPI)  to update the Header of the Material BOM ?

    Try doing something like this:
    class MyJTextArea extends JTextArea {
        public boolean keyDown(Event evt,int key) {
            if(key == 13 || key == 10) { // or whatever ascii codes enter may have
                // move carret to next line
            } else {
                super.keyDown(evt, key);
    }which means you have got to catch the enter-key before the actutal JTextArea does this.
    p.s. look at my post, maybe you can help me, too.
    http://forum.java.sun.com/thread.jsp?forum=5&thread=465803&tstart=0&trange=100

  • How to change soap header in xml

    some one know how can i change the SOAP:mustUnderstand="1" to SOAP:mustUnde

    Hi,
    you could use the below alternative solution also as some Web services do not accept the message , if Content type is application/XML in the HTTP Header, it will accept only Text/XML. So While calling the Web service, the content has to be changed, This is possible using Module of the adapter as shown in the screen shot.
    HTTP Header field values before using the module
    User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
    content-id: [email protected]
    content-type: application/xml
    Content-Length: 1280
    Module name - localejbs/AF_Modules/MessageTranspormationBean
    Type - Local Enterprise Bean Module - This is defined by the user, but the same name should be given in the module configuration for passing the parameters. In this case “transform” In the module configuration ,
    Module key - In this case “transform”
    Parameter name - Transform.ContenType
    Parameter Value - text/xml;charset=utf-8
    Here you could use the required parameters and pass the values....:-))
    Thanks
    Swarup

  • SSRS web services 401 if you pass "Authorization" http header

    We use both SSRS 2008 R2 and 2012. When i access a report using url access (direct ssrs server hit) and add a "Authorization: Bearer xyzelkalklsjsdfalsjdf" http header, i get a 401 from somewhere in the request pipeline. I have a custom httpmodule
    registered at the top of the chain which does some OAuth related security checks. But when this header is included, the request never reaches the httpmodule. If i change the header slightly ex: "YAuthorization: ljlxzcvc..", then the request reaches
    the httpmodule and everything works. So obviously SSRS is looking for a particular header named "Authorization" and does something with it. Point to note: we have implemented a custom forms authentication module and we are doing some rich authorization
    using the extensible ssrs api. 
    Now my questions are:
    1. What is happening here? Who is acting on my request before my HttpModule registered on top in ssrs\reporting service\web.config gets it?
    2. How do i ensure my httpmodule executes before whatever component is terminating my request with a 401

    Sorry if this sounds like I am new to this but I am.
    So, the extended version is the format that would be used if you were not utilizing the files that the wsdl2java function creates?
    And this is done to when you want more flexibiility for the user to call your service?
    So, you would push to have the stub files used when you want to control how the web service is used?
    thanks for the feedback.

  • Adding custom information in HTTP Header in an outgoing request from GWWS

    Is there a way to send custom header information with the a webservice request (HTTP post) that happens via GWWS server?
    All the methods I read about deal with managing the soap envelop that gets sent.
    We are looking for ways which will allow us to put custom information in the headers.
    I am aware there is something we can do using the Salt Plugins.
    For example, we can write a Out bound plugin which has a capability of putting the "Authentication:Basic..." in the header.
    Then there is message conversion plugin which deals with transformation of message, which gives us control over the soap body.
    Is it possible to put information in the header for outgoing request (from GWWS) to a specific web service?
    Thanks and Sincere Regards,
    Mrugendra

    Maurice,
    Thanks for confirming this.
    It clarifies the doubts that I was having while reading through the documentation Xu pointed to.
    Yes, we need to add HTTP Headers (not SOAP header).
    For now we just need to add Basic Authentication HTTP Header for outbound service calls.
    We have developed a plugin to do that for now.
    And even if the salt plugin takes care of adding the Basic Authentication in the HTTP Header for outgoing calls, I guess we do not have any option to include some custom information in the HTTP Header which might be required in the future.
    At-least, not unless we request that enhancement.
    Bringing the plugin into our mix requires a lot of changes to our architecture including inclusion of AUTHSVR in the UBB,
    Which, in turn, makes it imperative to change the endpoint clients of our application.
    In addition to that, the incoming web service calls also need to include TUXEDO authentication information, which would again require either communicating the authentication information to the consumers of our service or device some kind of a proxy which would add the authentication information for all the incoming requests!
    With these facts in mind, we were wondering if we have an easier way to include the HTTP header information.
    As you say, Maurice, it seems it is not possible yet.
    Thank you again for your replies.
    Sincere Regards,
    Mrugendra

  • Accept language in Http Header of Aqualogic portlet.

    Hi, we have developed one web page using ASP.Net and hosted in the Aqualogic portlet server, when ever we access that page from different location/browser, we are getting "en-us" as accept language in the Http header variable of Request object, but it should change based on the location and browser.
    Please let us know,do we have to modify any settings in the aqualogic portal?
    Note: We are getting different accept language from the same code when hosted on the web server/local(Without Aqualogic).
    Thanks in Advance.
    Edited by: 993251 on Mar 12, 2013 11:08 PM

    >
    by using Client Cert authentication I have to set HTTPS required to true.
    >
    Yes.
    >
    When I try to invoke this service with http request, it redirects to https service.
    This actually just trashes the entire idea of terminating SSL in the load balancer.
    >
    Not necessarily. Although direct HTTP request to WebLogic is redirected to HTTPS enabled port, you can still use this settings with WebLogic plugin. I'm not aware of your deployment, but I use Apache plugin for WebLogic, terminate SSL on Apache and I'm still able to send requests authenticated by certificate from client through HTTPS.
    I don't know about F5, but I guess there should be similar feature as well.
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/cluster/load_balancing.html

  • Custom information in HTTP Header in an outgoing GWWS Request

    Hello Xu,
    Hello Everyone,
    With reference to the recent post activity in the post:
    [Adding custom information in HTTP Header in an outgoing request from GWWS|https://forums.oracle.com/forums/thread.jspa?threadID=2366358&tstart=0]
    We are looking for an option to send custom header information with the a webservice request (HTTP post) that happens via GWWS server.
    I prematurely marked that post as answered since we got a link to documentation in one of the answers, which suggests that problem has been taken care in TUXEDO11gR1.
    However, it would be difficult (almost impossible) for us to move to 11gR1 immediately.
    Since I marked that post as "answered" and I did not know if replies in that post will get any attention, I opened up this post.
    Xu (He) suggested (in reply to my previous post) that there might be a patch for our problem.
    It would be wonderful/perfect if we can get a patch for 10gR3!
    We are using the following:
    TUXEDO10gR3 PATCH LEV=44
    SALT Patch Lev = 15
    Please do let us know.
    Thank you again
    Sincere Regards,
    Mrugendra

    Maurice,
    Thanks for confirming this. (in the post: [Adding custom information in HTTP Header in an outgoing request from GWWS|https://forums.oracle.com/forums/thread.jspa?threadID=2366358&tstart=0] )
    It clarifies the doubts that I was having while reading through the documentation Xu pointed to.
    Yes, we need to add HTTP Headers (not SOAP header).
    For now we just need to add Basic Authentication HTTP Header for outbound service calls.
    We have developed a plugin to do that for now.
    And even if the salt plugin takes care of adding the Basic Authentication in the HTTP Header for outgoing calls, I guess we do not have any option to include some custom information in the HTTP Header which might be required in the future.
    At-least, not unless we request that enhancement.
    Bringing the plugin into our mix requires a lot of changes to our architecture including inclusion of AUTHSVR in the UBB,
    Which, in turn, makes it imperative to change the endpoint clients of our application.
    In addition to that, the incoming web service calls also need to include TUXEDO authentication information, which would again require either communicating the authentication information to the consumers of our service or device some kind of a proxy which would add the authentication information for all the incoming requests!
    With these facts in mind, we were wondering if we have an easier way to include the HTTP header information.
    As you say, Maurice, it seems it is not possible yet.
    Thank you again for your replies.
    Sincere Regards,
    Mrugendra

  • Authorization tag in  http header

    While making an end point call using the webservice control the authorization tag is getting added to the http header. This is causing 401 errors when going over SSL . We are adding the credentials as part of the SOAP header.
    Why / How is the Authorization Basic tag getting created? Also how can we eliminate it?
    ****************** tcpmon output shown below
    POST /DMIntegration/ContentService HTTP/1.1
    User-Agent: BEA WebLogic Server 10.3.0.0
    Content-Type: text/xml; charset=utf-8
    SOAPAction: ""
    Authorization: Basic U334567dGFsVXNlcjpQb3J0YW1234==
    Host: 10.157.44.155:7080
    Accept: text/html, image/gif, image/jpeg, */*; q=.2
    Connection: Keep-Alive
    Content-Length: 1834
    Thanks,
    - Shankar

    Hi,
    The Authorization group can be created as follows
    Transaction SE54 >Select 'Authorization Groups'>Create/Change-->New Entries.
    Now the authorization group created can be assigned to your table.
    Goto transaction 'SE56' and select authorization group radio button and create your authorization group.
    In general different users will be given different authorizations based on their role in the orgn.
    We create ROLES and assign the Authorization and TCODES for that role, so only that user can have access to those T Codes.
    USe SUIM and SU21 T codes for this.
    USE
    Much of the data in an R/3 system has to be protected so that unauthorized users cannot access it. Therefore the appropriate authorization is required before a user can carry out certain actions in the system. When you log on to the R/3 system, the system checks in the user master record to see which transactions you are authorized to use. An authorization check is implemented.check Su22 and SU24u will get list of objects
    Hope clear to you.
    Regards,
    R.Brahmankar

  • HTTP Header fields in SOAP adapter - Part 2

    Hi All,
    With regards to my previous thread HTTP Header fields in SOAP adapter
    my header issue is solved and hence I have closed the thread but still I am not able to make the connection successful. The new problem is below
    My vendor requirement is to specify the header as "Ent-sender" but when we give the same in XI in communication channel it automatically convets into uppercase "ENT-SENDER".  Due to case-sensitive in vendor server the connection is not gettingestablished.
    Please help me out how to solve the problem.
    <b>Note:</b> Sorry for the new thread as it was created due to new problem and also the previuos thread is already too long.
    Regards,
    Dhill

    Hi Neaves,
      Thank you, I jave seen the note and find the below solution will be some what realated to my prblem.
    <u><b>The nosoap mode lets the adapter send the XI payload directly without wrapping it in the SOAP envelope. Although the main use of this mode is to send some plain text content directly to some web server, one can use this mode to send their own SOAP message (e.g., with arbitrary headers) to an external web service (See related questions). In this case, the XI payload must be formatted in the SOAP envelope.
               To use the nosoap mode, the channel must be configured to use no SOAP envelope.</b></u>
    If yes, can you please let me know how to use nosoap mode otherise let me the other possibilities.  I am already using tcpg2.zip to trace the SOAP adapter in which it was confirmed that XI is changing the header automatically into CAPS whatever case we give,
    Regards,
    Dhill

  • HTTP header in HTTP reponse

    i have a HTTP request--->BPM--->Http Response, there is a S/A bridge to implement this
    for which i there is a
    1. HTTP sender channel (outbound synchronous message interface),
    2. BPM,
    the requirement is...in the sync HTTP response, i need the HTTP header "content-length"to be changed to 0,
    for this i wanted to use the "Set adapter specific message attribute -> HTTP header fields (Synchronous response)" in the HTTP sender channel,
    but i cant see this field in the sxi_monitor in the Dynamic configuration tab of the Response Message...
    pls help me solving this

    Try this
    [http://help.sap.com/saphelp_nw04/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm]
    Also the Stream Transformation Constants which we can access using Dynamic Configuration:
    [http://help.sap.com/javadocs/NW04S/current/pi/com/sap/aii/mapping/api/StreamTransformationConstants.html|http://help.sap.com/javadocs/NW04S/current/pi/com/sap/aii/mapping/api/StreamTransformationConstants.html]
    Edited by: Praveen Gujjeti on Apr 21, 2009 12:24 PM

  • How to change the header text on output type in sapscript

    Dear All,
    In the sapscript, I would like to changes the header text from invoice number to sales number on the output type z001.
    Could someone can guide me?
    Thanks.

    Hi,
    Please go through following link :
    http://forums.adobe.com/thread/870081#870081
    Thanks and Regards,
    Vibhuti Gosavi | [email protected] | www.infocepts.com

  • BC Ecommerce SOAP Error: Server did not recognize the value of HTTP Header SOAPAction

    I am trying to add a product to an ecommerce site with this soap action: Product_UpdateInsert
    I have followed this very brief instruction: https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx?op=Product_UpdateInsert
    I have a html page in a secure area with a jQuery ajax soap script.
    I get the this error when I run the script:
    <?xml version="1.0" encoding="utf-8"?><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:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server did not recognize the value of HTTP Header SOAPAction: https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>
    I have also tried to add a header with the Soap action with the beforeSend in the ajax call.
    This must have been solved before I suppose?
    Here is my script:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Test SOAP Request</title>
        <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.1/underscore-min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
        <script type="text/javascript" src="//cdn.worldsecuresystems.com/bcapi/bcapi-0.0.1.min.js"></script>
    </head>
    <body>
    <script>
    var wsUrl = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
    var soapRequest =
    '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
      <soap12:Body> \
        <Product_UpdateInsert xmlns="https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice"> \
          <username>myEmailAdress</username> \
          <password>mySecretPassw</password> \
          <siteId>1894001</siteId> \
          <productList> \
            <Products> \
              <productCode>ZJAWEyuuyN</productCode> \
              <productName>My test product</productName> \
              <description>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</description> \
              <smallImage>/images/product1/small.jpg</smallImage> \
              <largeImage>/images/product1/large.jpg</largeImage> \
             <cataloguesArray> \
                 <string>/Store/</string> \
              </cataloguesArray> \
              <pricesSaleArray> \
                <string>US/19.95,3/17.96,7/16.96</string> \
              </pricesSaleArray> \
              <pricesRetailArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesRetailArray> \
              <pricesWholesaleArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesWholesaleArray> \
              <wholesaleTaxCodeArray> \
                <string>US/0.00</string> \
              </wholesaleTaxCodeArray> \
              <taxCodeArray> \
                <string>GB/VAT</string> \
              </taxCodeArray> \
              <groupProducts> \
                <string>580H0036BL</string> \
                <string>ACAI60</string> \
                <string>ABC-123</string> \
              </groupProducts> \
              <groupProductsDescriptions> \
                <string>Lorem ipsum dolor sit amet</string> \
                <string>consectetur adipisicing elit</string> \
              </groupProductsDescriptions> \
              <supplierEntityId>1234</supplierEntityId> \
              <supplierCommission>0</supplierCommission> \
              <weight>30</weight> \
              <tags>NEW!</tags> \
              <unitType>string</unitType> \
              <minUnits>0</minUnits> \
              <maxUnits>2</maxUnits> \
              <inStock>43</inStock> \
              <onOrder>3</onOrder> \
              <reOrder>2</reOrder> \
              <inventoryControl>true</inventoryControl> \
              <canPreOrder>true</canPreOrder> \
              <custom1>Text in custom field 1</custom1> \
              <custom2>Text in custom field 2</custom2> \
              <custom3>Text in custom field 3</custom3> \
              <custom4>Text in custom field 4</custom4> \
              <popletImages>/images/image1.jpg;/images/image2.jpg;</popletImages> \
              <enabled>true</enabled> \
              <deleted>false</deleted> \
              <captureDetails>true</captureDetails> \
              <downloadLimitCount>20</downloadLimitCount> \
              <limitDownloadsToIP>0</limitDownloadsToIP> \
              <isOnSale>true</isOnSale> \
              <hideIfNoStock>true</hideIfNoStock> \
              <productAttributes>Size*|5|Y:L||UK/2|US/20,S||UK/1|US/10</productAttributes> \
              <isGiftVoucher>false</isGiftVoucher> \
              <enableDropShipping>true</enableDropShipping> \
              <productWeight>0</productWeight> \
              <productWidth>0</productWidth> \
              <productHeight>0</productHeight> \
              <productDepth>0</productDepth> \
              <excludeFromSearch>false</excludeFromSearch> \
              <productTitle>My product title</productTitle> \
              <cycletypeId>3</cycletypeId> \
              <cycletypeCount>-1</cycletypeCount> \
              <slug>my-product</slug> \
              <hasVariations>true</hasVariations> \
              <variations> \
                <ProductVariation xsi:nil="true" /> \
                <ProductVariation xsi:nil="true" /> \
              </variations> \
            </Products> \
          </productList> \
        </Product_UpdateInsert> \
      </soap12:Body> \
    </soap12:Envelope>';
    $.ajax({
         type: "POST",
         beforeSend: function(xhr){xhr.setRequestHeader('SOAPAction', 'https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert');},
         url: wsUrl,
         contentType: "text/xml",
         dataType: "xml",
         data: soapRequest,
         success: processSuccess,
         error: processError
    function processSuccess(data, status, req)
       if (status == "success")
       alert("Success!");
    function processError(data, status, req)
       alert("Failed!");
       alert(req.responseText + " " + status);
    </script>
    </body>
    </html>

    This line is a target namespace so it should not be changed: <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> It is very easy to think that it's a placeholder and that it should be replaced with your own url, which it should not and which will fail.
    This works now:
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Test 7 SOAP Request</title>
            <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        </head>
        <body>
            <script>    
                var SoapMessage = '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
    <soap12:Body> \
    <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> \
    <username>Your Email</username> \
    <password>Your password</password> \
    <siteId>1894001</siteId> \
    <productCode>HHKDKXS5MB</productCode> \
                </Product_Retrieve> \
                </soap12:Body> \
                </soap12:Envelope>';
                var url = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
                $.support.cors = true;
                $.ajax({
                    type: "POST",
                    url: url,
                    data: SoapMessage,
                    dataType: "xml",
                    processData: true,
                    contentType: "text/xml; charset=\"utf-8\"",
                    success: function (msg) {
                        alert("suc: " + msg);
                    error: function (msg) {
                        alert("Failed: " + msg);
            </script>
        </body>
    </html>   

  • Make process manger send additional http header when querying WSDL ?

    Hello,
    is there a possibility to send an additional, custom http header when
    process manager reads WSDL from a webserver.
    Backgrund info: all our WSDLs are hosted on a special webserver which
    needs this field. Changing to another kind of repository is not an option.
    It would be nice if we could add some parameter to the appserver or domain
    configuration to add this field as a default for each request.
    Note that we don´t need the http field if we call partnerLinks. It´s only required for
    WSDL-query (= the URLs given in bpel.xml / </partnerLinkBinding> )
    Thanks in advance
    Bernd

    Hi,
    It is a memory or buffer related problem. Contact your BASIS.
    Looks like there is a shortage of space. Analyse the dump in ST22 and look for its proposals.
    OSS note 965351 might be applicable (if you are on 640/ unix).
    regards,
    NR

Maybe you are looking for