Frends doesn't have straight support for SOAP, but as SOAP is fundamentally XML messages sent over HTTP, it is possible to make SOAP calls and publish web services.

SOAP call

To make SOAP you can use a normal HttpRequest Task. Just include soap envelope, in the body and ad correct headers. For soap 1.2 you need to use HTTP headers: Content-Type: application/soap+xml and charset=utf-8.

It should be noted that HttpRequest does not support more advanced SOAP messages such as WS-Security. However, it is possible to sign XML documents with community Task XMLSignature.

Publish Web services (WSDL)

To mimic web services you have to make a HTTP trigger for each endpoint. SOAP messages are XML so handling them won't cause any troubles in Frends Process.

If you want to publish WSDL from your own URL you have to make your own HTTP trigger for it.

Then your HTTP endpoints would look for example like:

example.com/ws/             (WSDL is served here)
example.com/ws/operation1
example.com/ws/operation2
example.com/ws/operation3
example.com/ws/operation4
example.com/ws/operation5

If you want to serve WSDL when a caller calls your service with some URL parameter, e.g. example.com/ws/operation1?wsdl=true you have to add logic to each process to detect that parameter and then return WSDL. Generally, it is best to add this kind of recurring logic in FRENDS Subprocess. 

Furthermore, if WSDL needs to be served from example.com/ws?wsdl=true you have to add a trigger and detect parameters.

Did this answer your question?