Before we proceed further I must request all those who are at their first hand configuring the RFC sender adapter to read the weblog The specified item was not found. by Mike. This i believe is a one of the best weblog addressing the issue of configuring the RFC sender adapter.
Note : In this weblog my comments will be on the basis of the two part weblog RFC -> XI -> WebService – A Complete Walkthrough (RFC -> XI -> WebService – A Complete Walkthrough (Part 1) & RFC -> XI -> WebService – A Complete Walkthrough (Part 2)).
I hope this weblog will hence act as a troubleshooting guide for the beginners trying out that scenario.
1. The Program ID – This is Confusing !!!
Q: Where can I find the program id ? Ans: Well, the program id can be anything, even your name. 🙂 But the catch here is that you should have the same in both the RFC destination and your RFC adapter.
Note: If you have read the above mentioned blog by Mike, he has used sdnweblog as the program id and the same is used in the RFC destination and also the RFC adapter Interesting read – Question 22 of SAP note 730870 An extract of the same is “To identify a XI RfcAdapter sender channel within the SAP Gateway it is important that its Program ID is unique within this Gateway.So try to avoid using common phrases as Program ID like ‘rfcadapter’ or ‘rfcToXmb’. To check which Program IDs are registered at the SAP Gateway the gateway-monitor can be used via transaction SMGW. Select Goto -> Logged on Clients. Registered RFC-Servers have a System-Type of ‘REGISTER_TP’. The Program ID of the registered RFC-Servrer can be found in column ‘TP name’. Unfortunately the list within SMGW only shows the truncated version of the Program ID (column ‘TP name’). To get the full name, the details of an entry have to be selected. As an alternative the report RSGETALL_REG_SERVERS can be executed in transaction SE38. The output of this report will show the full names of the Program ID in column ‘Registered PROGID’. This functionality is also available in the function module GWY_READ_CONNECTED_SYSTEMS which can be executed in transaction SE37.”
2. Application Server(Gateway) and Application Server Service(Gateway) – Where to find it ?
TCODE : SMGW -> Goto-> Parameters -> Display You will find the required info under Attributes. Application Server(Gateway) is the Gateway hostname and Application Server Service(Gateway) is the Gateway service. Usually the Gateway service is sapgwXX where XX is the system number.
3. The RFC destination – Trouble trouble and loads of trouble !! a. Make sure that the RFC destination is to be created in the R3 systems and not XI. b. If in your adapter monitoring you find a message as ‘Could not start server: Connect to SAP gateway failed’, then try to replace the GWHost (gateway host) with the IP of the R3 system. c. Check out the SAP note 730870 for the FAQ on the RFC adapter.
4. com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: senderAgreement not found – Check if you have provided * as the value in your party for both the sender agreement and the RFC sender communication channel. Try creating both of them without the * as the value.
1. SOAP Action – Action ??????
Ref: Point 5 In case your WSDL does not have a SOAP Action defined (search for soapAction in your WSDL, it will give you the action), try with a blank SOAP Action in your Adapter. In case it doesnt succeed then try the following; The SOAP action = SOAP operation. You will find it under the tag . Eg. . To find the list of Operations in your WSDL try this. Open the WSDL in a XML Editor (eg. XML Spy). Click on the Schema/WSDL tab and you will find all the operations listed. See the following screen shot;
in this case getDistance is the action
2. The Target URL – Ehhh, Excuse me !!!!!
To find the Target URL search the WSDL for ‘wsdlsoap:address location’. Also ref. point 5
3. Configure Proxy – Why should I ? If your network involves a proxy that details have to be provided in the adapter. Also if the proxy involves an authorization, the Proxy User Authentication details need to be filled in. Else a Delivery Exception is sure to be raised.
4. SAP Note – FAQ’s on the SOAP adapter SAP Note : 856597
5. Additional Notes – XML Spy users An Easy way of finding out your web service’s right address and SOAP action using XML Spy is:
1. In the menu, Go to SOAP -> Create new SOAP request
2. Browse the WSDL file or enter the full URL of the WSDL (it should be ?wsdl)
3. Select the operation you want to access
4. After the request has been generated, go to SOAP, Change SOAP request parameters.
6. “Delivery Exception: invalid content type for SOAP:TEXT/HTML.”
a. The reason can be the wrong address in your SOAP adapter.
b. What else can I do?
As per default the SOAP adapter sends the SOAP message the content type text/xml. If for some reason it is not doing that then use the messagetransformbean. In you adapter provide the following;
Go to the SOAP receiver communication channel module tab. Add the module “localejbs/AF_Modules/MessageTransformBean” before the standard module. Provide the parameter name Transform.ContentType and value text/xml
7. com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/PLAIN Try contacting the WS team and finding out the Content Type expected by them. Using the MessageTransformBean, the content type can be changed.
8. My content type is showing application/xml but this is not expected.
Confirm if you have checked the option “Do not use SOAP envelope”. If this is checked then the content type by default is application/xml. If the problem still persist use the MessageTransformBean to help you out.
Running into more troubles ? Post it here or in the forum and i will keep updating the above list. For more FAQ’s on XI click The specified item was not found..