SOAP

To create the service definitions for an external data source providing SOAP interface, use the SOAP Service. You need to have a WSDL URL or file to create the service definition. For example, we will use a WSDL URL of a weather application that has a GetCityWeatherByZip service and will provide appropriate configurations for the Service Definition.

Configure SOAP End-point Adapter

To configure a SOAP service in Integration service definition tab, follow these steps:

  1. In the Name field, provide a unique name for your service.
  2. From the Service Type list, select SOAP.

    NOTE: XML is selected, by default.

  3. Provide the following details to create a SOAP service.
    FieldsDescription
    VersionSpecify the version number for the service.
    Base URLType the URL.
    Choose WSDL Specification
    Web Service Authentication
    Identity Service for Backend Token

    Select the Identity service associated with your app if this service needs backend token like access_token from that Identity service to access the backend server.

    NOTE: For more information on Externalizing Identity Services, refer to Replace the Identity Service references in a Fabric app.

  4. NOTE: All options in the Advanced section are optional.

  5. Enter the Description for the service.
  6. Click SAVE to save your service definition.

Create Operations for SOAP

The Operation List tab appears when you click Add Operation in the Service Definition page.

NOTE: Click Operations List tab > Configure Operation. The Configured Operations list appears.

To create an operation, follow these steps:

  1. Click SAVE & ADD OPERATION in your service definition page to save your service definition and display the NewOperation tab for adding operations.
                        OR
    Click Add Operation to add a new operation or from the tree in the left pane, click Add > Add New Operation.
  2. In Operations List tab, click Operation Name list box and select one or more Operations.
  3. Click Add Operation. The selected operations appears under Configured Operations list.

    IMPORTANT: While configuring an integration service with basic auth mode, ensure that some reserved IDs are not used as input/header IDs. Key words such as userid, pwd and password are reserved by middleware when a user selects basic auth mode.

  4. Click the operation name under Configured Operations. The operation details page appears.
  5. Type the following fields to create an operation
    FieldDescription
    NameThe operation name appears in the Name field. You can modify the name, if required.
    Operation Security Level

    It specifies how a client must authenticate to invoke this operation.

    NOTE: The field is set to Authenticated App User, by default.

    Target URL

    The Target URL field is pre-populated with the URL. You can add the suffix, if required.

    http://baseurl.com/suffix

    For Example, to the base URL, you can add suffix such as /latest  or /sports to get latest news or sports news:

    • http://feeds.foxnews.com/foxnews/latest
    • http://feeds.foxnews.com/foxnews/sports
  6. NOTE: All options in the Advanced section for operations are optional.

  7. Enter the Description for the operation.

Configure Request Operation for SOAP

Integration services accept only form-url-encoded inputs for all input parameters provided in service input parameters (request input).

You can perform the following actions in Request Input tab:

  1. Click Add Parameter  to add an entry (if the entries for input and the output tabs does not exist).
  2. To make duplicate entries, select the check box for the entry, click Copy and Paste.
  3. To delete an entry, select the check box for an entry and click Delete .
  4. Under the Body tab, perform the following actions:
    1. To forward the body of the client's request to backend as it is, select the Enable pass-through input body check box. For more details on API Proxy service, refer to How to Enable Pass-through Proxy for Operations.

    2. To configure parameters in the clients body, do the following:
      FieldDescription
      NameEnter the name for the request input parameter.
      Value

      Three different options are available in Quantum Fabric under VALUE during configuration of any operation. When you start editing this field, dependent identity services are auto populated. These options primarily determine the source of the value of the header.

      NOTE: The field is set to Request, by default.

      TEST VALUEEnter a value. A test value is used for testing the service.
      DEFAULT VALUEEnter the value, if required. The default value will be used if the test value is empty.
      ScopeSelect request or session. This field is set to Request, by default.
      EncodeSelect the checkbox to enable an input parameter to be encoded. For example, the name New York Times would be encoded as New%20York%20Times  when the encoding is set to True. The encoding must also adhere the HTML URL encoding standards.
      DescriptionEnter the description for the request.
  5. Click the Header tab to provide the following customer headers, perform the following actions:

    You must provide the custom HTTP headers based on the operation. For example, post or get.

    1. To forward headers of the client's request to backend as it is, select the Enable pass-through input header check box. For more details on API Proxy service, refer to How to Enable Pass-through Proxy for Operations.
    2. To configure parameters in the client's header, do the following:
      FieldDescription
      NameProvide custom HTTP headers required by the external source.
      Value

      Three different options are available in Quantum Fabric under VALUE during configuration of any operation. When you start editing this field, dependent identity services are auto populated. These options primarily determine the source of the value of the header.

      NOTE: The field is set to Request, by default.

      NOTE: For more information on Externalizing Identity Services, refer to Replace the Identity Service references in a Fabric app.

      NOTE: If the header value is scoped as a Request (or) Session and the same header is accessed under the Expression header value, then the expression must be represented as $request.header (or) $session.header.



      Example: If a header 1 value is a request and header 2 value is an expression, then the value of the expression must be $Request.header1.



      TEST VALUEEnter a value. A test value is used for testing the service.
      DEFAULT VALUEChange the syntax, if required. The default value will be used if the test value is empty.
      DescriptionEnter the description for the header.
  6. You can add pre and post processing logic to services to modify the request inputs. When you test, the services details of various stages are displayed in the service execution for better debugging. You can refer to Test a Service Operation for the steps to test a service.

Configure Response Operation for SOAP

Click the Response Output tab to configure the fields of the table for displaying the data.

NOTE: If you define parameters inside a record as the session, the session scope will not get reflected for the parameters.

  1. To forward the response from the backend to the client as it is, select the Enable pass-through output body check box. For more details on API Proxy service, refer to How to Enable Pass-through Proxy for Operations.
  2. You can create a desired output based on the back-end response by using XPath. So that the extracted output can be sent to the client app. You can create an XPath manually.

    The following steps details XPath generation manually:

    1. Click Add Parameter to add new row.
    2. Click the Tree button in the Backend Response tab.

      This displays the backend response in a tree structure format.

    3. Click the node for which you want to create XPath.

      The XPath for that node is displayed at the bottom of the Tree structure.

    4. Enter that XPath in the row that you have created.

      For more details, refer XPath in Quantum Fabric.

  3. To configure parameters in the response, enter the values for required fields such as name, path, scope, data type, collection ID, record ID, format and format value.

    ID Path
    State //GetCityWeatherByZIPResponse/GetCityWeatherByZIPResult /State
    City //GetCityWeatherByZIPResponse/GetCityWeatherByZIPResult /City
    Temperature //GetCityWeatherByZIPResponse/GetCityWeatherByZIPResult /
    Humidity //GetCityWeatherByZIPResponse/GetCityWeatherByZIPResult /RelativeHumidity
    Wind //GetCityWeatherByZIPResponse/GetCityWeatherByZIPResult /Wind
  4. IMPORTANT: If the back-end for a SOAP service provides the date in a specific format and you want send the date in a different format to a device, you can configure the data format and FormatValue ( syntax : inputDateFormat~outputDateFormat) in the response tab.

    For example, if a back-end sends the date as Thu, 07 Sep 2017 07:03:00 GMT and you want convert it to 2017-09-07T07:03:00.000+0000, then set the format value as EEE, dd MMM yyyy HH:mm:ss z~yyyy-MM-dd'T'HH:mm:ss.SSSZ.



    For more details on the syntax of the date formats, refer https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    NOTE: When you enable Pass-through proxy flags, you will notice that you cannot configure request input, headers, and response out parameters for this operation.

  1. To validate the operation details, click Save and Test. For more details, refer to Test a Service Operation.
  2. Click SAVE OPERATION to save the changes. To use an existing integration service, refer to How to Use an Existing Integration Service.

NOTE: You can view the service in the Data Panel feature of Quantum Visualizer. By using the Data Panel, you can link back-end data services to your application UI elements seamlessly with low-code to no code. For more information on Data Panel, click here.