Monday, December 10, 2007

Troubleshooting - RFC and SOAP scenarios

RFC SENDER ADAPTER

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 730870Update

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.

SOAP RECEIVER ADAPTER

1. SOAP Action - Action ??????

Ref: Point 5

In case your WSDL does not have a SOAP Action defined, 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;

image

2. The Target URL - Ehhh, Excuse me !!!!!

To find the Target URL search the WSDL for 'wsdlsoap:address location'. For example your search might return,



hence the Target URL is http://webservices.imacination.com/distance/Distance.jws

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."

The reason can be the wrong address in your SOAP adapter.

7. com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/PLAIN

No comments:

Blog Archive