IDoc to SOAP: client handler for response

Hello All,
I have a scenario with IDOC to Web services.
Is it possible to establish synchronous communication?
We do not want to use BPM.
I tried with importing IDOC structure into External definition, and then defining it as Synchronous Interface like this
IDOC Interface(Outbound) -> output:'ZINVOIC'
                                           input: 'Response'
WSDL Interface(Inbound) ->   input:'Request'
                                           output:'Response'
But this did not work as the response is still going from Web services to the sender channel which is IDoc adapter
If asynchronous, the web service party is telling me to set up a client handler to listen to the responce that web service is sending. Is it possible? and if possible, please explain the steps.
Please help me out with this!
Thanks,
Lakshmi

Hello Lakshmi,
We also had similar requirement. This cannot be synchronous. IDOC to Webservice is always an asyn communication.
Hope this helps.
Thanks
-Kulwant

Similar Messages

  • Problem in SOAP Client Handler configuration

    Hi all,
    I am working on a webservice project where i have to send SOAP headers in the SOPA Request from Client and retrive the same at webservice end. I have configured server Handler in webservices.xml of the Webservice and it is working fine. (It is going into the handleRequest(MessageContext ctx) method.). Also i have configured a client Handler in the client and configured it in the web.xml. But this client side handler is not working. (call is not going in the handleRequest(MessageContext ctx) method of this handler).
    Now i have two probs -
    1. What can be the prob in the client side Handler configuration? And how to resolve this so that call goes in handleRequest() method.
    2. I want to send SOAP header from client, so where i will have to set these headers? For client side i have generated client classes from WSDL, written a ClientTest.java class which calls the webservice. (It is perfectly calling the webservice) and created & configured SOAPHandlerClient.java. In which class should i add the code to set (or add) SOAP headers?
    Note : -I am using RAD and websphere server.
    Thanks in advance.

    Check the URL.
    the communication channel that u assign is not valid. Also I am seeing that u are sending the SOAP request to XI using the SOAP adapter??
    So your URL should contains the SOAP sender channel right??
    Thanks
    Farooq.

  • WHICH SOAP CLIENT STACK FOR  JDEV 10.1.3 WEBPROXY ?

    Hello everybody,
    I just succeeded in calling webservice stubs, created in Jdeveloper 10.1.2., from a oracle10G (R2) DB. This works perfectly...
    Now i'm trying to deploy the same webservice from Jdeveloper 10.1.3 into the same database. I generated a proxy (whereas in Jdeveloper 10.1.2 you create a stub) and deployed a static method from the client class, in the proxy, into the DB (similar to the approach in Jdeveloper 10.1.2). However this doesn't work. I get a big list of error messages containing all reference errors. My guess is that the soap client stack, loaded into Oracle, is different for both versions of Jdeveloper. In that case i'm still working with the stack for jdev 10.1.2 where I should be working with the stack form jdev10.1.3.
    Can anyone please tell me what .JAR's I have to load in the DB to get the proper stack needed for calling 10.1.3 proxys (or stub as you will)?
    Many thx in advance!!!!
    Grtz,
    Kim

    I found out that Jdeveloper 10.1.3 works with JAX-RPC webservices. So instead of installing the SOAP client stack one should install the JAX-RPC stack in the database. this stack is found on the oracle site ( search for call-out utilities).
    Hope this helps people with the same problem!
    Message was edited by:
    Kim Zeevaarders

  • BAPI to SOAP scenario - query for response as table

    This is for BAPI to SOAP scenario. We need response as TABLE(multiple values,like arraylist/resultset in java) , not as single valued items.
    .net method is ->Y_Vct(string CoCode,string Role, ref A_BTable)  -    
       Request:
               CoCode -Optional, if empty string is passed all companies will be fetched by the function
               Role - Optional, if empty string is passed all the roles will be fetched by the function
        Response:
               A_B- returns set of records(Multiple) based on the parameters passed
    BAPI is - Y_Vct
    How to get response from table of multiple values .
    like 10 records as response for 1 request.
    thanks.

    Hi Jha,
    Which version of PI you are using? If you are uisng 7.1 then you can return the multiple values.
    Regards,
    ---Satish

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there,
    the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
    I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
    In particular the blogs
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
    have caused by attention.
    Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
    In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
    The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
    The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
    The questions I have are as follows.
    1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
    Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
    Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
    My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
    2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
    SOAP fault returned when using SOAP Sender adapter of AF
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    SOAP fault using integrated SOAP adapter of PI IE
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>System Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context/>
                   <code>ABAP.PARSE_APPLICATION_DATA</code>
                   <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
    There may already be a blog or thread and I just missed it.
    Any comments are welcome.
    Thanks. Dieter

    Hi Dieter,
    As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
    Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
    The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
    http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    Kind regards,
    Wojciech
    btw nice thread

  • IDOC -XI-SOAP one sender different  receivers based on condition

    Hi All,
    I have an IDOC to SOAP scenario.
    For each record based on the input flag XI has to send the  any one of the request ...like either create or update or delete request. All these message types are a part of single WSDL.
    How can i do it?
    Thanks in Advance
    Jyothsna

    hi There are two ways you can do this:
    1. Without BPM - Since you have to create all the target messages adn you want either the 1st and second, or the first and third: create two multi-mapping with one and two, and one and three. In the receiver determination check the condtion based on which you decide the second or the third message has to be created and route it to the correct mapping accordingly.
    2. with BPM, create all the target mapping. In the BPM check the condtion in the switch and do a send accordingly.
    You can do this either on Receievr Determination or on Interface Determination.
    Add multiple Receievrs/ Interfaces and then add the conditons on which the target should be choosen
    to use Xpath for your receiver det. ref these blogs;
    a combination of logics should help you in this case ...
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    pls reward points if solution found helpfull
    regards
    chandra.k

  • IDOC to SOAP Synchronous Communication

    Hi Experts,
    Scenario is IDOC to SOAP.
    And Expecting Response(Sucess/Failure) from Third Party system.
    My understading is IDOC wont support Synchronous communication.
    If synchronous comm is possible in IDOC to SOAP scenario could you please elobrate the Requirements and detail the procedures with ID and IR configuration.
    If not How this can achived in this scenario.
    Regards,
    Seshu.

    [IDoc to SOAP Synchronous with BPM|http://wiki.sdn.sap.com/wiki/display/XI/IDoctoSOAPSynchronouswith+BPM]
    Regards
    Raj

  • Hiding business-logic methods from the SOAP Client

    Hello,
    Is there any way to hide a method from the SOAP Client.
    For Example, Lets say I have two methods in my object Foo. And the client of this web-service can create Foo thru SOAP API. The method are:
    public String getName();
    public Group getGroup();
    I want the SOAP client to see the Foo object only with getName() and not getGroup().
    Can I control this thru Java2Wsdl or something else?
    Thanks,
    Neeta.

    You can use source2wsdd with @wlws:exclude tag for the methods you want to hide.

  • Web service client needs to share data with a SOAP Message Handler

    I have a web service client that is built using WebLogic 10 clientgen. I also have a Soap Message Handler configured that will create the required Soap Headers for the web service call.
    Creating these Soap Headers works great as long as the header data is static but the problem comes up when I need to place some dynamic data in these headers. The web service client has this data and somehow needs to pass it to the Soap Message Handler. It looks like I need to somehow have the client place this data in the MessageContext before the call so the data can be accessed by the Soap Message Handler.
    How do I get access to the MessageContext from the client or is there a better way to do this?
    Thanks in advance for any help you can give.

    You may want to check the response to this previous post to see if it yields any ideas for you:
    Not able to Pass header info to Microsoft MapPoint WebService using WLS10

  • IDOC to SOAP asynchronous scenario Error handling

    Need an expert!!!!!!!!! advise on  error handling for IDOC--PI--
    SOAP scenario.This is a asynchronous scenario where PI is calling a Legacy system using SOAP adapter.My question is how i can do error handling in this scenario.If i get an alert in pi with payload variable that would be fine, do i need to use BPM and if that is tthe case what will be steps.
    Appreciate your help.
    Manish

    Hello Manish,
    My question is how i can do error handling in this scenario.
    Use the standard alert framework. Search on SDN / SAP Help for details.
    do i need to use BPM and if that is tthe case what will be steps.
    BPM is not required to raise alerts, as this is an async call.
    Regards,
    Neetesh

  • IDoc to SOAP Receiver Fault Message Handling?

    Hi,
    I am working on IDoc to SOAP Scenario (IDoc -> PI -> SOAP). It is in async mode without BPM. This works fine as long as there is no error on the SOAP receiver side. How to handle the falut message raised by the SOAP receiver and send it back the SAP ECC.
    Do I need to use ALEAUD IDoc for this? If Yes, how to configure this to handle fault message? Is there any other way of doing it?
    Could you please give steps to handle the fault message?
    Thank you.
    Regards,
    Cdr.

    Have a look into the below threads -
    How to capture SOAPFault in an Async/Sync Scenario without BPM
    Acknowledgement Handling in IDoc to SOAP Scenario in PI 7.3

  • URL for Response msg from cidx to idoc

    Hi Experts
    The Senario is sap_idoc to CIDX(msg protocal RNIF and Transport protocal HTTPS)Receiver Elemica Gateway.
    while creating communication channel for receiver cidx adapter, we need to give URL details in target tab.that URL was provided
    by receiver Elemica gateway that is
                      PI Server to Elemica gateway (https://quality.connect.elemica.com:2345/invoke/gateway.b2b.xml/receiveChemXML).
      i need      Elemica gateway to PI Server URL ? How to get this URL to give elimica?
    Thanks

    Hi Raja,
                      1, For Response message they are asking URL from us . here sender adapter is  CIDX and receiver adapter is >IDOC. How can i find the URL for above scenario
    Here we have to give the partner address to which the adapter sends the CIDX Signal Message. (ask your partner for this address)
    For more information
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c0222aba-0516-2c10-67a9-d8d37af83861&overridelayout=true
                      2, i think we can see the processed xml messages using tcode sxmb_moni.Is this processed xml msgs stored in xi >application server? if stored  how can we see those xmls msgs in App server?
    These details can be stored in the App server for a certain amount of time only. we can view these details in the SXMB_MONI only.
                      3, do we need to create data types,msg types, msg interface,msg mapping, interface mapping for response >msgs?
    Yes you have to create all the steps that are created for the request message.
                      4, if possible can you provide design and configuration simple steps for response msg. (i will be useful if you type >here)  
    Check this link for your referrence
    SYNCHRONOUS SOAP TO JDBC - END TO END WALKTHROUGH  
    Regards
    Ramesh

  • Idoc to soap scenario - soap response error

    hi
    i am using pi 731 single stack.
    the scenario is idoc to soap. the message mapping is working fine and output is generated successfully.
    the message is failing in mesage monitor and communication channel monitor. error is -
    Exception caught by adapter framework: SOAP: Response message contains an errorXIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: VEN-OMI-1007:
    This scenario is async scenario. How to soap remove this response message error.
    rgds

    Dear,
    IDoc to Soap scenario we have to import wsdl at receiver end and map the field from the mapping document but some times receiver end some changes may happen. if it is correct only your mapping we have to conclude from the below points.
    1. Check the mapping in Message Mapping and Operation Mapping Test and conclude.
    2. you should check url from receiver that is correct or wrong.
    3. ask the wsdl from receiver end.
    the given ED and receiver side application is same this type of error will not come.
    Please check at receiver application or else what ever new fields are added in reciver may be miss mach of ED.
    Regards,
    Kiran Polani

  • Client Certification for Sender SOAP Adapter

    I am trying to configure an incoming SOAP call to allow client certification for autentication and not ask for username/pwd. I already tried changing the configuration of the SOAP adater in visual admin to have the client certification module with no luck.
    Please let me know if anyone has already done this before.

    Hi,
    Check the link for Client Certificate authentication...
    [http://www.i-barile.it/SDN/EnablingSSL&ClientCertificatesOnTheSAPJ2EEEngine.pdf]
    Regards,
    Prakasu.M

  • Web-services.xml for EJB component and SOAP Message Handler Chain

    I have used the following example for my own web service with EJB component and SOAP
    Message Handler Chain:
    http://e-docs.bea.com/wls/docs70/webServices/dd.html#1058208
    I have a deployment error:
    javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/DocumentService.j
    ar#DocumentService/home' Resolved: 'app/ejb' Unresolved:'DocumentService.jar#Doc
    umentService' ; remaining name 'DocumentService.jar#DocumentService/home'
    In attachement is the ear file.
    Is there a problem in web-services.xml?
    Thanks
    [ws_dox_sdi.ear]

    It works. Thanks,
    Ioana
    "Neal Yin" <[email protected]> wrote:
    The error means your EJB is not deployed.
    Adding a EJB module to your application.xml file of the ear should fixe
    it.
    <application>
    <display-name />
    <module>
    <web>
    <web-uri>dox_sdi.war</web-uri>
    </web>
    </module>
    <module>
    <ejb>DocumentService.jar</ejb>
    </module>
    </application>
    "Ioana Meissner" <[email protected]> wrote in message
    news:3cf640cc$[email protected]..
    I have used the following example for my own web service with EJBcomponent and SOAP
    Message Handler Chain:
    http://e-docs.bea.com/wls/docs70/webServices/dd.html#1058208
    I have a deployment error:
    javax.naming.NameNotFoundException: Unable to resolve'app/ejb/DocumentService.j
    ar#DocumentService/home' Resolved: 'app/ejb'Unresolved:'DocumentService.jar#Doc
    umentService' ; remaining name 'DocumentService.jar#DocumentService/home'
    In attachement is the ear file.
    Is there a problem in web-services.xml?
    Thanks

Maybe you are looking for