SOAP
Purpose and Use Case
The zbsync_soap module adds the SOAP Grabber (zbs.grabber.soap), which calls a SOAP web service function over a WSDL-described connection and returns its result to the pipeline. There is currently no dedicated SOAP Dumper — outbound SOAP calls that don't need to return data can also be made through this same worker, since the call itself can be any operation exposed by the service.
SOAP Connection
Before using the SOAP Grabber, create a SOAP Connection with:
| Field | Description |
|---|---|
| WSDL Url | The service's WSDL endpoint, e.g. http://www.webservicex.net/ConvertSpeed.asmx?WSDL. |
| Username / Password | Optional HTTP Basic Auth credentials sent with every call. |
| Timeout | Request timeout in seconds. |
SOAP Grabber
Configuration
| Field | Description |
|---|---|
| Connection | The SOAP Connection to call through. |
| Call | The service function call to make, written as a Python-style call expression, e.g. ConvertSpeed(100, 'kilometersPerhour', 'milesPerhour') or ConvertSpeed(**data). |
The Call expression is evaluated with access to the same variables as other zSYNC code fields (record, data, instance_env, etc.), so arguments can be built dynamically from upstream pipeline data, e.g. {instance_env['methodname']}(**data).
How It Works
- Builds a
zeepSOAP client from the Connection's WSDL and (if configured) HTTP Basic Auth session. - Evaluates the Call expression against the current record and calls the corresponding
client.service.<function>(...). - Returns the service's response wrapped as
{"soap": <result>}for the next worker to consume.
The underlying model also has a
Content Pathfield for pre-extracting a sub-portion of the record as call arguments, but it isn't exposed on the standard configuration form — it's available for custom view extensions.
Usage and Best Practices
Common Pitfalls
- Call expression mismatches the WSDL: the function name and argument count/order in Call must exactly match what the WSDL exposes —
zeepraises at call time otherwise. - Missing credentials: if the service requires HTTP Basic Auth and Username/Password aren't set on the Connection, the call fails with an authentication error.