Usage of Module processor in SOAP Receiver Adapter

Hi,
I have scenario where I am calling an external Web Service via XI. Unfortunately I need Java Mapping to generate the complete SOAP Message (there are some special header elements required by the Web Service)  and flag 'no soap' in the SOAP Receiver Adapter. This works fine, but I have additional Web Service Calls that have the same Header logic and I don't want to use Java Mapping all the time.
I was wondering if it is possible to use graphical User Mapping for the Business Data that goes to the SAOP Body as a payload and use Java code to generate the SOAP Message (actually the SOAP Wrapper and the Header).
Can I do this in XI using the Module processor in the SOAP Receiver adapter or do I have to use two mappigs, one based on the Graphical mapping and another using Java Mapping? Is it feasible at all in XI?
Thanks in advance.

Hi,
You can use Module Processor.
But,
1. If it is a synch call, in when the message is going from the SOAP adapter to the Webservice, you will need to manually Add the SOAP header as you want . ( you will need to create the entire SOAP mesage as the output of the Module ).
2. When the response comes back, the same module will need to remove the SOAP header etc and pass a valid , XML message to the Graphical mapping.
If you have a requirement that some fields of the SOAP header will be needed to be accesed in the Response mapping, then you would need to either add this field to some field in the response payload.
Better option would be to use, Either a Java or a XSL mapping that does all the required stuff for you.
Regards
Bhavesh

Similar Messages

  • SOAP Receiver Adapter Always "Running"

    I have a SOAP receiver adapter that is working fine.  I call an MDM web service, which sends a response, but I do not need it.  I have tried a synchronous and asyncronous interface.  Both work fine.
    But...with both, the communication channel monitor in RWB always shows a Short Log of "running". 
    Is this right?  I expected that the Short Log value would reset to inactive or something.
    Processing Details...
    2009-01-28 10:13:29 Success Message successfully received by messaging system. Profile: XI URL: http://snadc80i:50000/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
    2009-01-28 10:13:29 Success Using connection SOAP_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.
    2009-01-28 10:13:29 Success Message successfully put into the queue.
    2009-01-28 10:13:29 Success The message was successfully retrieved from the receive queue.
    2009-01-28 10:13:29 Success The message status set to DLNG.
    2009-01-28 10:13:29 Success Delivering to channel: SOAP_MDMIn_MDMUpdateRecord
    2009-01-28 10:13:29 Success MP: Entering module processor
    2009-01-28 10:13:29 Success MP: Processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
    2009-01-28 10:13:29 Success SOAP: request message entering the adapter with user J2EE_GUEST
    2009-01-28 10:13:29 Success SOAP: completed the processing
    2009-01-28 10:13:29 Success SOAP: sending a delivery ack ...
    2009-01-28 10:13:29 Success SOAP: sent a delivery ack 2009-01-28 10:13:29 Success MP: Leaving module processor
    2009-01-28 10:13:29 Success The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System. 2009-01-28 10:13:29 Success The message status set to DLVD.
    Thanks,
    Keith

    Short Log only displays the status of communication channel. So if it says running, then it would mean that the channel is in running status. When not in use, it doesn't get deactivated itself. I guess "running" is what people wait to see
    Regards,
    Prateek

  • SOAP receiver adapter digest authentization

    Hallo,
    I have scenario with SOAP receiver adapter configured as follow:
    Adapter Type: SOAP
    Transport Protocol: HTTP
    Message Protocol: SOAP 1.1
    Adapter Engine: Integration Serer
    Target URL: http://localhost:8099/webservices/test_v1_1_2
    Configure User Authentication
    User: ****
    Pasword:****
    but WS need digest HTTP authentication and SOAP adapter send in header Authentication: Basic.
    Hou can I change authentication method for SOAP protocol?
    Thx

    Hallo,
    I solved this problem by using AXIS framework. I hope that this short instruction help to someone.
    1. In SOAP receiver CC you have to set up Transport Protocol to HTTP(AXIS) and Message protocol to AXIS
    2. Now you can switch Authentication to Digest (NOW adapter will still send Basic!!!  Digest Authorization is Supported only by the following handler: com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender)
    3. On Module tabs in section Module configuration change type HTTPSender to CommonHTTPSender:
         (trp  handler.type  java:com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender)
    4. Save and Activate
    Before you start to use AXIS framefork you have to deploy necessary library.
    This thread help:
    Re: How to install SOAP Axis adapter and where is it available  ??
    Be carefull, for digest authorization you have to linked Optional library "Jakarta-Commons HttpClient" too.
    Good luck.
    JK

  • SOAP receiver adapter for Axis

    Hi,
    I used SOAP receiver adapter for Axis  like below:
    Transport Prorocol : HTTP
    Message Protocol : Axis
    Url: http://<IP>:<Port>/xxx/WebService/services/Head/yyy
    Authentication : Basic
    User: <user>
    Password: <password>
    SOAP Version : 1.1
    SOAP Action: : <method>
    Encapsulation Format : MIME
    Payload Extraction : SOAP Body
    When i drive PI message it generates error below.
    What must i do to solve this problem?
    Thanks.
    Error message
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: javax.ejb.EJBException: Exception in getMethodReady() for stateless bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: com.sap.engine.services.ejb3.util.pool.PoolException: javax.ejb.EJBException: Exception raised from invocation of public void com.sap.aii.adapter.axis.modules.AFAdapterBean.ejbCreate() throws javax.ejb.CreateException method on bean instance com.sap.aii.adapter.axis.modules.AFAdapterBean@20715646 for bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: javax.ejb.CreateException: java.lang.NoClassDefFoundError: org/apache/axis/types/URI$MalformedURIException

    *Url:*  http://172.28.6.194:8080/AssetManagerWebService/services/Head/SapTest
    When i use Url with *?wsdl* it generates below (it'is very long. I give part of it)
    wsdl
    <?xml version="1.0" encoding="UTF-8" ?>
    - <wsdl:definitions targetNamespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:intf="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:tns1="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Types" xmlns:tns2="http://schemas.hp.com/AssetManager/R51/ACMetaData" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <!--
    WSDL created by Apache Axis version: 1.2.1
    Built on Jun 14, 2005 (09:15:57 EDT)
      -->
    - <wsdl:types>
    - <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:AdministrationTypes="http://schemas.hp.com/AssetManager/Custom/Head/Administration/Types" xmlns:CableTypes="http://schemas.hp.com/AssetManager/Custom/Head/Cable/Types" xmlns:CatalogTypes="http://schemas.hp.com/AssetManager/Custom/Head/Catalog/Types" xmlns:ChargebackTypes="http://schemas.hp.com/AssetManager/Custom/Head/Chargeback/Types"
      <import namespace="http://schemas.hp.com/AssetManager/R51/ACMetaData" />
      <import namespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Types" />
    - <annotation>
      <documentation>Auto-generated schema for AssetCenter web services for Head/SapTest Implementation</documentation>
      </annotation>
      <import namespace="http://schemas.hp.com/AssetManager/Custom/Head/SAM/Types" schemaLocation="../../schema/Head/SAM/SAMTypes.xsd" />
      <import namespace="http://schemas.hp.com/AssetManager/R51/ACMetaData" ......
    <wsdl:operation name="retrieveAllBusinessAPIListByName">
      <wsdlsoap:operation soapAction="retrieveAllBusinessAPIListByName" />
    <wsdl:input name="retrieveAllBusinessAPIListByNameRequest">
      <wsdlsoap:body use="literal" />
      </wsdl:input>
    <wsdl:output name="retrieveAllBusinessAPIListByNameResponse">
      <wsdlsoap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    <wsdl:service name="SapTestService">
    <wsdl:port binding="impl:SapTestSoapBinding" name="SapTest">
      <wsdlsoap:address location="http://172.28.6.194:8080/AssetManagerWebService/services/Head/SapTest" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

  • SOAP Receiver adapter with attachments not working

    Hello,
    I have a simple synchronous scenario like this; ABAP proxy with attachments to SOAP with attachments.
    The SOAP receiver adapter has been configured with the parameters 'Do not Use SOAP envelope' and 'Keep attachments'. We create our own SOAP envelope with custom SOAP headers, so that's the reason for the 'Do not use SOAP envelope' setting.
    When we test the scenario with an attachment then we get a timeout from PI. However, when we test the same scenario without any attachment then no errors occur.
    The external webservice has also been tested with SOAP UI and it works fine.
    Do you have any clues what the problem can be? What are we still missing in the configuration?
    We did try with the adapter modules such as PayloadSwapBean and the Message TransformBean, so far without success...
    Many thanks.
    Roberto

    Hi Stefan,
    The attachments are not really big, around 150KB.
    According to the other party (Oracle Service Bus) no messages with attachments have been received. In fact it seems like those messages never leave the PI server. SOAP requests without attachments are processed successfully.
    Thanks
    Roberto

  • SOAP Receiver Adapter - Read Header data on Synchronous Response

    I have a scenario - flat file to SOAP. The web service provider sends a response that contains data in the Header that I need to access. I have tried to use the "Do Not Use SOAP envelope" option on my receiver SOAP adapter, and I have configured my request message type to include the soap envelope elements. However I'm getting the following error from the web service
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Cannot process the message because the content type 'application/xml' was not the expected type 'text/xml; charset=utf-8'.
    I've read some inputs on this error that say to use the Transform bean to adjust the content to text/xml. However I'm not sure how to do that. If that is the correct resolution to my problem, can someone provide detailed steps on how to add the Transform bean to the adapter module. I have no experience with adding items to the module tab.
    If there are other ways to tackle this scenario to get access to the SOAP Header from the SOAP receiver adapter, please share those as well.
    Thanks in advance.
    Chris

    Resolved with the following blog
    /people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi

  • HTTPS config in SOAP receiver adapter ?

    Hi Guys,
    I have configured the soap receiver adapter with the URL
    *https://xxxx.abcd.com/xyzv/bbbb.asmx with the user  authentication *
    I have tested the url and the user and pw in the browser and they are working fine but the messages are failing the soap receiver adapter with the 401 unautorized error as the message from the Audit log in the RWB.
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized. Setting message to status failed.
    Do i need to configure the Java Stack for HTTPS ? The communicaion is between the XI system and a third part system internally.
    any help would be appreciated ?
    Thanks,
    Srini

    Hi Guys,
    I have solved the problem and NTLM works with PI 7.0 but we need to configure soap axis adapter
    The Windows NTLM authentication is supported by Axis's CommonsHTTPSender handler and consequently it is supported by the Axis adapter's corresponding handler com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender. Read about How Can I use CommonsHTTPSender as the transport handler? if CommonsHTTPSender is not enabled on your system. Once it is enabled, you can use com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender instead of default com.sap.aii.adapter.axis.ra.transport.http.HTTPSender as the transport handler in the module configuration and set the authentication setting to NTLM and enter usename as domain\username in the channel configuration
    To use CommonsHTTPHandler, the optional Jakarta-Commons-Net, Jakarta-Commons-HttpClient, Jakarta-Commons-Codec libraries are required. Make sure that these libraries are available for the Axis adapter at the deployment check page  If these components are not available, you will need to include the corresponding jar files (commons-codec-1.3.jar, commons-httpclient-3.0.jar, and commons-net-1.0.0-dev.jar from the Axis 1.4 release) in aii_af_axisprovider.sda and deploy this archive (see How to prepare aii_af_axisprovider.sda?).
    The provider.xml file must include the jar-name entries for these jar files, as shown in:
        <jars>
           <jar-name>commons-net-1.0.0-dev.jar</jar-name>
           <jar-name>commons-codec-1.3.jar</jar-name>
           <jar-name>commons-httpclient-3.0.jar</jar-name>
        </jars>
    Once you do all the above settings, NTLM works fine
    Thanks,
    Srini

  • Payload at Adapter for System Errors - SOAP receiver adapter

    Hi Everybody,
    I am working on an Idoc to SOAP asynchronous scenario.
    There are connection issues between SOAP adaper and the target webservice.
    I need to capture the Idoc number from the message payload for the Erroneous messages at the adapter for the System errors.
    Is there any way of capturing field values from the payload (Say, Idoc number) at the SOAP receiver Adapter level.
    Helpful answers will be rewarded points.
    Thanks & Regards,
    Zabiulla

    Hey,
            I think you need to implement a module inorder to get the payload at receiver adapter module.
    As far i concern you can not directly refer the payload in adapter in receiveer communication channel unless you have your own module, which gets the payload. Check the Modules tab in the communication channel and also regarding how to get the payload for error information, follow the steps mentioned in the below link, which gets the payload in file. hop it will resolve your issue.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/writepayloadtoafilefromAdapter+Module
    Regards..
    Prasanna..

  • Configure User Authentication on SOAP Receiver Adapter

    Hi,
    I am calling a WebService that is available over the internet.  We are on PI 7.1 and I am using a Soap Receiver Adapter.  The configuration was downloaded from SAP in a partner package.  The development in the package was done on XI3. 
    I need to call the WS with user authentication.  I've selected the "Configure User Authentication" radio button and entered the username and password.  The message fail with "HTTP 401 Unauthorized" and it is because the user details are not being send from the adapter.  If I copy the XML payload to a XML tool, like Stylus Studio, I can call the webservice successfully.  I've read through numerous blogs and messages on this Forum, including adding the adapter module (MessageTransformBean) and changing the Conversion Parameters without any luck. 
    Any suggestions please?
    Thanks

    I am calling a WebService that is available over the internet.
    I copy the XML payload to a XML tool, like Stylus Studio, I can call the webservice successfully.
    normally the webservices that we use (from internet) are freely available...meaning they dont require any username/ password.
    if no credentials are required then do not select Configure User Authentication...uncheck it....if user-details are provided by the Webservice, then use these details (not your XI/ PI user details) in the channel.
    Are you using any user-name/ password while testing from SOAP tools?
    Regards,
    Abhishek.

  • SOAP receiver adapter for ASCII-7 characterset???

    Hi,
    Our scenario is Abap Proxy -> XI -> Web Services (SOAP Adapter). Receiver webservice will accept only the characterset of ASCII-7. But Abap Proxy will send only unicode characterset (default).
    Any workaround for receiver SOAP adapter to accept ASCII-7 characterset?
    Regards,
    Prasad U

    Hi -
    You can set a specific encoding in the soap receiver channel module configuration.  From the SOAP Adapter FAQ (Note 856597):
    <i>         o  Q: What character encoding is supported by the SOAP receiver
                adapter?
                A: The SOAP receiver adapter can use any character encoding
                supported by the local JDK. The request message from the SOAP
                receiver is normally encoded in UTF-8. If you want to change this
                encoding, for instance to iso-8859-1, you can set parameter
                XMBWS.XMLEncoding to iso-8859-1 in the module configuration for
                the SOAP adapter module. This setting is for the outgoing SOAP
                message and has no effect on the incoming SOAP message. For the
                incoming SOAP message, any code page supported by the local JDK
                is accepted.</i>
    Check the <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79">How to Use the XI 3.0 SOAP Adapter</a> document for an example.
    Regards,
    Jin

  • Dynamic URL in SOAP Receiver adapter

    Hi all,
    I have a scenario where I am using a SOAP receiver adapter to send a cXML document to some vendors. I need to change the URL based on the vendor number (passed by sender SRM system). So I have created a user-defined function and used in message mapping to assign the right URL to the variable TServerLocation. But the communication channel still prompts for a static URL which appears to be a mandatory field. Even though the DynamicConfiguration tab in Message Monitoring shows that the TServerLocation was correctly assigned, the scenario does not work when I put some dummy in the static URL field like 'dummy' or '*'. Any ideas on how to make the communication channel go for the dynamic URL field and ignore the static URL field? I have already selected the'Use Adapter Specific Message attributes' and 'Variable Transport Binding' check boxes. Am I referring to the correct variable that references the target URL? Also other than the two checkboxes that I mentioned, I am not displayed anything else under "Adapter Specific Message Attributes" section in the comm. channel.
    Thanks

    James,
    I ve just been digging into SAP help, and have tried it too ... Looks like it doesnt work the way it is supposed to.
    Anotheer point i found was, in the FILE ADAPTER, when we say ADAPTER SPECIFI ATTRIBUTES , we can select the attirbutes.. This is not possible in a SOAP adapter...
    Maybe, we can only access the ADAPTER SPECIIFC ATTIRIBUTES of a SOAP adapter, but cannot set them dynamically.
    Let me know if you find something on this issue.
    Regards,
    Bhavesh

  • Soap Receiver Adapter Error. Pls advice urgent

    Hi All,
    While using Soap Receiver Adapter for synchronous communication
    *My Soap Request is:*
    <?xml version="1.0" encoding="UTF-8" ?>
    <ns1:SendMessage xmlns:ns1="urn:MMWebSrvService">
    <strFrom>XI</strFrom>
    </ns1:SendMessage>
    *My Soap Response from server is:*
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!-- Inbound Message
    -->
    <tns:SendMessageResponse xmlns:tns="urn:MMWebSrvService" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <return xsi:type="xsd:int">-1</return>
    <strErrorDescription xsi:type="xsd:string">String reference not set to an instance of a String. Parameter name: s</strErrorDescription>
    </tns:SendMessageResponse>
    How to resolve the error.
    Regards

    Henry,
    Your xml message is not xsd compliant...see if you can generate a xml message using your wsdl with random values, compare that to your imcoming msg..and thats your issue..
    Hope that helps
    Regards
    Ravi Raman
    Reward points if helpful !

  • SOAP Receiver adapter error. SOAP CALL Failed

    Hi ,
        I am implementing scenario R/3->RFC adapter->XI->SOAP REceiver adapter->Web Service (Synchronous). I am getting the error.
    SOAP: call failed
    SOAP: error occured: java.net.ConnectException: Connection timed out
    Message log is as below.
    Any clue ?
    Thanks & Regards,
    Mathew
    2005-10-31 18:59:58
    Success
    output
    1130810398454
    The message was successfully received by the messaging system. Profile: XI URL: http://host:Port/MessagingSystem/receive/AFW/XI
    2005-10-31 18:59:58
    Success
    output
    1130810398458
    Using connection AFW. Trying to put the message into the request queue.
    2005-10-31 18:59:58
    Success
    output
    1130810398458
    Message successfully put into the queue.
    2005-10-31 18:59:58
    Success
    output
    1130810398459
    The message was successfully retrieved from the request queue.
    2005-10-31 18:59:58
    Success
    output
    1130810398459
    The message status set to DLNG.
    2005-10-31 18:59:58
    Success
    output
    1130810398460
    Delivering to channel: CC_CALCULATOR
    2005-10-31 18:59:58
    Success
    output
    1130810398564
    SOAP: request message entering the adapter
    2005-10-31 19:03:07
    Success
    output
    1130810587497
    SOAP: call failed
    2005-10-31 19:03:07
    Error
    output
    1130810587497
    SOAP: error occured: java.net.ConnectException: Connection timed out
    2005-10-31 19:03:07
    Error
    output
    1130810587498
    Exception caught by adapter framework: Connection timed out

    Hi Mathew,
    Check if the webservice is availble??? Based on the error below, it looks like the message is timing out at the Adapter Engine level waiting for the connection to make the webservice call...
    Prasad

  • SOAP Receiver Adapter using SSL - PI 7.0

    Hi all,
    i am currently faced with a .net WCF webservice integration using https via SOAP Receiver Adapter in PI 7.0.
    Can anybody tell me into which Visual Administrator view i have to import my certificate in order to get https working ?
    Thanks in advance,
    Martin

    It must be the View you have created for your partners. There is usually a Trusted view where you have your own certificate. And there are other views where partners cerificates are stored. There you have to store the certificate.
    Regards,
    Prateek

  • SOAP Receiver Adapter / Scenario calling WebServices

    Hi Experts,
    I am trying to call a web service.  Configured a SOAP Receiver adapter. Message to Web Service goes fine but not shown with Checkered flag, but with icon with description "Log Version".
    In response message for the request Error Category - MAPPING and Error ID "Cannot Read Payload".
    Any ideas to clear this problem. I do have response mapping assigned to Message Interface.  Message Interface is Synchronous.
    Thanks in advance for any solutions.

    can you verify that you are getting a response..try re-routing that to tcpgw and check if content is in line with expected response.
    Regards
    Ravi Raman

Maybe you are looking for

  • I can't wake up my MacBook without power cord since firmware update

    Even though my battery charges fine and it's on 99% full it won't wake up without a power cord. when I walk away from the computer and close the lid, when I open it again and hit the space bar nothing happens. I have to hit the power up button and st

  • ITunes crashes when I try to print a playlist

    When i try to print a cd cover from a playlist it crashes iTunes. Doesn't seem to matter what songs are in the list, it does it for all of them. As soon as I select print from the File menu, the wheel comes up and spins for a few seconds, and then it

  • Ideas for an alghorithm - aging report

    Hello, I have to create an aging report (financial) which shows the invoices of a client, the total amount paid, and then the unpaid invoices. I have managed to gather from different tables the information in this way: with aging as select 9406 as "a

  • IDX2 doens't refresh IDoc structure

    Hello everybody, I have a problem with the IDX2. There is a Z IDoc which has changed. So I deleted the old entry in the IDX2 and load it again from the system. But the structure is not refreshed. I tryed to load it from another XI System (the develop

  • Found x-platform remote debugger that works with WLSv4.5.1!!

    [att1.html]