By default, a clean ABAP sap stack does not have all available services activated due to security reasons. If you start creating web services you’ll find out some things don’t work out of the box. Note: I’ve encountered this on SAP ABAP stack v7.x.
You can create a web service from SE80 Object Navigator but chances are:
- you can’t open its wsdl in a browser or make it available to external web service consumers
- you can’t open SOAMANAGER to fully manage the web service
Both these issues can be fixed with the help of SICF transaction, allowing you to activate/deactivate SAP services based on your requirements. Run SICF, leave all settings as they are and press F8/execute button. You now have a tree like structure with all installed SAP services, root node being default_host/sap.
Enable WSDL service
Notice that the wsdl you’re trying to open in a browser has a url structure like http://host:port/sap/bc/srt/wsdl/….
You can find the same tree structure in SICF: sap – bc – srt – wsdl. Right click on the last node wsdl and select activate. SAP will now handle all wsdl requests.
In earlier sap versions, there were the WSCONFIG and WSADMIN transactions. They still exist but only for managing web services created in earlier version. You now get a warning these transactions are obsolete and you should use SOAMANAGER transaction instead. Running SOAMANAGER will open a browser window ending up with an error message. To be able to access it you need to activate some more services via SICF.
Notice the SOAMANAGER url structure: http://host:port/sap/bc/webdynpro/sap/appl_soap_management……
Just like above this structure is also reflected in SICF tree: sap – bc – webdynpro – sap – APPL_SOAP_MANAGEMENT. Activate it. Trying to access SOAMANAGER will end up in a different error detailing some other services need to be activated as well, services used by APPL_SOAP_MANAGEMENT. Activate sap – public – bc and all its child services. SOAMANAGER will now run correctly.