Getting Started
Basic Concepts
Tutorials
Advanced Concepts
How-to Guides
Building integration flows
Data transformation
Integration patterns
Developing Components
Tenant Management
Components
CRM components
ERP components
E-Commerce components
Marketing-related components
Finance-related components
Office components
Protocol components
Service components
Database components
Utility components
References
Sailor
Component Descriptor
Covered in this article
Soap component pages
Created on Updated on
SOAP component

SOAP component

A messaging protocol for exchanging information between applications running on different OS.

Description

The SOAP Component provides the SOAP Web Services work opportunity within a elastic.io flow.

Purpose

As an integration platform, elastic.io has an opportunity to invoke SOAP Web services over HTTP.

How it works

Step 1

Find and select SOAP component in the component repository Step 1

Step 2

Create new or select existing credentials Step 2

Step 3

Specify WSDL URL, then choose binding and operation consecutively. The order matters! Step 3

Step 4

Configure an input data and click “Continue” Step 4

Step 5

Retrieve sample or add sample manually Step 5: Retrieve sample

Step 6

Retrieve sample result Step 6: Retrieve sample result

Requirements

The platform supports the following SOAP protocol versions:

  • SOAP 1.1
  • SOAP 1.2

Component supports the following WSDL styles:

  • RPC/Literal
  • Document/Encoded
  • Document/Literal

Environment variables

OIH_REQUIRED_RAM_MB - recommended value of allocated memory is 2048MB

Credentials

Type

You can select the following authorization type:

  • No Auth
  • Basic Auth
    • Username - Username for Basic authorization header in the SOAP request
    • Password - Password for Basic authorization header in the SOAP request
  • API Key Auth (not supported yet).

Triggers

Receive SOAP Request

Webhook that validates input body over WSDL.

Input fields description

  • WSDL URI - Public URL address of the WSDL
  • Binding - One of the bindings available and described in the WSDL, which you want to use for a SOAP call
  • Operation - One of the operations available for the binding you have selected above.
  • Validation - If Enabled validate the SOAP Body over WSDL, if Disabled does not validate a SOAP Input Body

Example of usage

Configuration:
  • WSDL URI - http://www.dneonline.com/calculator.asmx?wsdl
  • Binding - CalculatorSoap12
  • Operation - Add
  • Validation - Enabled
Request Body:
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Add xmlns="http://tempuri.org/">
      <intA>1</intA>
      <intB>1</intB>
    </Add>
  </soap:Body>
</soap:Envelope>
Output:
{
  "Add": {
    "intA": "1",
    "intB": "1"
  }
}

Known Limitations

  1. Namespaces ignored and SOAP Body with 2 tags that have same name but in different namespaces would be invalid
  2. SOAP Headers not supported yet
  3. Retrieve Sample does not represent actual behaviour of component

Actions

Call

Makes a call to SOAP service over HTTP using public WSDL URL

Input fields description

  • WSDL URI - Public URL address of the WSDL
  • Binding - One of the bindings available and described in the WSDL, which you want to use for a SOAP call
  • Operation - One of the operations available for the binding you have selected above.

SOAP Fault

A SOAP fault is used to carry error information within a SOAP message. The component handles SOAP faults and emits platform exception in this case. SOAP Fault should comply with the W3C SOAP Fault standard.

Input json schema

The component does not have static input json schema as it is dynamically generated for every wsdl/binding/operation specified during the configuration of the component input fields. Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate an input metadata. You can refer these tools documentation to get deeper understanding about the product.

Output json schema

Output json schema is generated dynamically the same as for the input (see above).

Additional information

You should specify input fields exactly in the order below. You’ll get an error otherwise.

  1. WSDL URI
  2. Binding
  3. Operation

Soap Reply

Wraps and returns input data as SOAP response by provided SOAP metadata

Input fields description

  • WSDL URI - Public URL address of the WSDL
  • Binding - One of the bindings available and described in the WSDL, which you want to use for a SOAP call
  • Operation - One of the operations available for the binding you have selected above.

Input json schema

The component does not have static input json schema as it is dynamically generated for every wsdl/binding/operation specified during the configuration of the component input fields. Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate an input metadata. You can refer these tools documentation to get deeper understanding about the product.

Output json schema

Output json schema is generated dynamically the same as for the input (see above).

Input data example:

{
  "AddResponse": {
    "AddResult": 3
  }
}

Output data example:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <AddResponse xmlns="http://example.org/">
            <AddResult>3</AddResult>
        </AddResponse>
    </soap:Body>
</soap:Envelope>

Current limitations

Here are the limitations of this component:

  • RPC/SOAP-Encoded styles are not supported.
    • All major frameworks for web services support Document/literal messages. Most of the popular frameworks also have some support for rpc/encoded, so developers can still use it to create encoded-only services. As a result it is hard to estimate the number of web services, in production use, work only with SOAP encoded messages. However, there is a tendency to move away from RPC/encoded towards Document/literal. Since the SOAP encoding specification does not guarantee 100% inter-operability and there are vendor deviations in the implementation of RPC/encoded.
  • Only self-containing WSDLs are supported now. This means that WSDL containing external XSD schemas will not work in this version of the component.
  • WS-Security header is not supported.
  • WS-Addressing is not supported.
  • Custom SOAP headers can not be added.
  • The WSDL and associated schemas must be accessible via a publicly accessible URL. File upload of the WSDL and/or XSD schemas is not supported.
  • Component does not support multi-part format of message in the SOAP request element. Only first part of request element will be processed in the current component version.