I've not done it with 4.x, but it should be the same as in 5.x.
A SOAP envelope is just an XML document with a particular format and content defined by a WSDL (and sometimes also an XSD) file. 99% of the time, SOAP messages are transmitted using HTTP.
At a high level, within StreamServe, you'll need to set up an XML OUT process, and link it to an HTTP Submit output connector. Refer to the "XMLOUT.pdf" and "HTTP.pdf" documentation files.
See if the customer can provide you with a sample of the SOAP message that the server expects, along with descriptions of any Elements and Attributes that you'll need to change. Copy and paste that SOAP message into an XML file, then import it to your project as an XML document template. With the XML OUT tool, fill in the Elements and Attributes as necessary.
(If the customer cannot provide you with a sample of the SOAP message, then they'll have to provide you with .WSDL and .XSD files. Download a program called soapUI, import the WSDL, identify the desired Web Services Method, and there you'll be able to create a template SOAP request message.)
If the data from StreamServe is just a simple text node, you can just insert it into the SOAP message body as the contents of a string variable. But because the SOAP envelope is XML text, if the data from StreamServe is another XML or a binary (e.g. a PDF or TIFF) stream, you'll have to MIME-encode it into a text string before inserting it into the SOAP message body.