I've done this: Retrieving WSDL (http:///sap/bc/soap/wsdl services=RFC_SYSTEM_INFO) to get the WSDL for the RFC RFC_SYSTEM_INFO. Older WAS: (http:///sap/bc/soap/wsdl11?services=RFC_SYSTEM_INFO to get the WSDL for the RFC RFC_SYSTEM_INFO). Making the Call: When you manage to build a proper SOAP document from the description, you can make the call: http:///sap/bc/soap/rfc?services=RFC_SYSTEM_INFO to invoke the service ]. But I have had trouble with BAPIs which do not commit work. I know there is a separate BAPI for commit work, but since the Web service call is stateless, how do I call a commit work subsequent to calling the functional BAPI? Do I need to 'wrap' the BAPI to enable one call to do two things?
Since release 4.0, BAPIs are designed not to do any COMMIT WORK. This is done on purpose to allow for "workflow chains", or sequences of BAPI calls. Normally you can make calls to BAPI_TRANSACTION_COMMIT thereafter to force the COMMIT WORK. Depending on how your SICF is set up, this will not work when you share a connection between users. In that case, you might need to create a wrapper function: a function module that does the BAPI call plus the commit work in one shot. Another idea is, to simply copy the service behind http:///sap/bc/soap/rfc (i.e the class that executes when the node is called) and add a COMMIT WORK, but that is quite a challenge.