Flow Run by SOAP

Once call out a method with the correct parameter from any SOAP client, the Flow will run. A Flow supports the SOAP, which is RPC style or RPC/Document style. The RPC Style is used to process the simple non-struct data types as parameter or return value. The RPC/Document Style is used to process any XMLs.

To communicate with client by HTTPS listener, you can use the certifications registered into the Management Console according to PKI.

Flow

The Flow run by SOAP must be either of the 2 patterns as below.

The Flow whose input/output stream type is ParameterList can only be created with the RPC Style's SOAP that processes simple data as method's parameter or return value. In this case, the ParameterList defined by Start Component is the method's parameter, and the ParameterList which is the EndResponse Component's input stream is the method's return value.

In the Flow whose input/output stream type is XML, you can define the fields freely under the XML's document element, and process them. The XML's document element defined by Start Component becomes the SOAP's method name, and the XML's document element inserted to the EndResponse Component becomes the SOAP method's return value's wrapper element (Conventionally, it's recorded as"method name+"Response"" ).

※ The pattern that input/output stream type is ParameterList is for creating a simple RPC, so the Flow whose input/output stream type is XML can also do the same processing.

You can return SOAPFault with the SOAPFault Component by using either of the styles.

Create the Flow

You can create a Flow run by SOAP satisfied above requirments manually, also you can simplify the steps by using wizard.

  1. Click the "SOAP" icon under the "Flow" tab in the "Create Flow" dialog box.
  2. Enter the TargetNamespace and the operation name (method name) of the SOAP Flow you created.
  3. After clicking "Finish", you will create a Flow with the structure of "Start > Mapper > SubFlow > Mapper > EndResponse" successfully.

The settings of the Flow created by wizard have completed previously.

By processing the template above, you can complete the SOAP Flow.

  1. Define the fields under the Start Component's document element for the operation parameter.
  2. Define the fields under the document element of the mapper put before the EndResponse Component for the operation's return value.
  3. Set the SubFlow Component for processing data, and do the mapping for the SOAP's input/output stream.

Actually, it's not necessary to process the data through the SubFlow Component. By obeying the pattern as above, it will be easy to test it (executed by the designer).

Start (Input stream)

When the input/output stream type is ParameterList, you should set a SOAP operation's parameter for the Flow's input stream.

When the input/output stream type is XML, the Flow's input stream is the first element (The element takes TargetNamespace as name space and takes operation name as element name.) under the SOAPBody of the request message sent from the client side. Under its document element, you should define the fields of the request message's content sent from the client side.

Flow parameter

There is no Flow paremeter.

Finish (Output stream)

When the input/output stream is ParameterList, you should set a SOAP operation's return value for the Flow's output stream.

When the input/output stream is XML, the Flow's output stream is the first element under the SOAPBody of the response message returned to the client side from the server. Under its document element, you should define the fields of the request message's content sent from the server.

※Under the SOAPBody, you can't create the SOAP message including multiple elements.

Execution settings

You should set the SOAP exectuion settings according to below. By doing the execution settings, you will run the Flow from the Endpoint specified by the SOAP Service compatible with SOAP1.1, WSDL1.1.

TargetNamespace Specify the SOAP message's TargetNamespace. TargetNamespace is a name for collecting multiple SOAP operations.
In the trigger management's WSDL output, create a file for each TargetNamespace.
To define the input/output stream by XML, the TargetNamespace and the input stream's document element's name space must be the same.
Operation Specify the SOAP message's operation name.
Operation is a name for identifying SOAP message.
To define the input/output stream by XML, the Operation and the input stream's document element's element name must be the same.
Style Specify the SOAP message's style.
Use Specify the SOAP message's encoding.
When Style is Document, Use is decided as "literal".
Endpoint Specify the URL's Endpoint for running.
If the Endpoint isn't specified, the URL for SOAP execution is as below.
http://<Server address>:<Port>/soap
If the Endpoint is specified, the URL is as below.
http://<Server address>:<Port>/soap/<Endpoint>

Define the execution settings

Click "SOAP" in the Execution Setting dialog box or Trigger Management's tool bar. Then click "Select" in the right of the "Flow" under "Flow settings", and select a Flow from the dialog box. When the Flow's input/output stream is XML, the TargetNamespace and the Operation will be set by the XML's document element defined by Start Component automatically.

Style and Use

There are an RPC Style and a Document Style in a SOAP. Even if you read the telegrams (SOAPEnvelope) processed by both styles, you almost distinguish them. Moreover, the Flows run by SOAP created by the two styles are the same.

The differences between RPC and Document are as below.

RPC

RPC is the short form of "Remote Procedure Call". It means that to execute remote procedure, namely, to execute the procedure on the different host, and get its return value.

To realize RPC, there are many ways besides SOAP. Generally speaking, SOAP will realize it with the rules as below.

For example

function int add(int a, int b)

The above is a simple addition represented by RPC. Its request definition is as below.

<ns1:add xmlns:ns1="urn:test">
    <a>5</a>
    <b>10</b>
</ns1:add>

In this case, the 2 parameters for operating addition are represented by 2 elements named "a","b" seperately. If you define the method by programming language such as Java, the elements are only used to name the parameters. Namely, in order to pass the processing parameters for running in RPC easily, XML is adopted, but the XML itself doesn't have any meanings.

Document

The Document Style is used to process XML document itself. Namely, the XML elements processed there have their own meanings. When use XML Schema adopted widely or use the schema decided in a company, you can use the Document Style.

literal and encoded

There are "encoded" type and "literal" type in SOAP's Use(encoding). The "encoded" type is an encoding established before XML Schema was recommended when SOAP began. Now, only the "literal" type can represent the whole content, so according to WS-I BasicProfile, it's decided not to use the "encoded" type. To be compatible with the past versions, the "encoded" type is kept here, so please don't use this type except for some special occasion.

※WS-I Basic Profile is a rule for improving connectivity between the SOAP systems built by different vendors, which is different from the SOAP specification and must be obeyed by the SOAP service's implementors.

Guideline for creating the Flow run by SOAP

To create the Flow run by SOAP, please take care of the points below.

 

To the top of this page