SOAP API Connector for SSIS

SOAP Connector can be used to consume data from XML SOAP Service without any programming. It supports advanced filtering along with flexible approach to configure request parameters for web service.
You can use this connector to integrate SOAP API data inside SSIS and SQL Server. Let's take a look at the steps below to see how exactly to accomplish that.

Download Documentation

Video Tutorial - Integrate SOAP API data in SSIS

This video covers following and more so watch carefully. After watching this video follow the steps described in this article.

  • How to download / install required driver for SOAP API integration in SSIS
  • How to configure connection for SOAP API
  • Features about XML Source (Authentication / Query Language / Examples / Driver UI)
  • Using SOAP API Connection in SSIS

Prerequisites

Before we perform steps listed in this article, you will need to make sure following prerequisites are met:
  1. SSIS designer installed. Sometimes it is referred as BIDS or SSDT (download it from Microsoft site).
  2. Basic knowledge of SSIS package development using Microsoft SQL Server Integration Services.
  3. Make sure ZappySys SSIS PowerPack is downloaded and installed (download it). Check Getting started section for more information.
  4. Optional (If you want to Deploy and Schedule ) - Deploy and Schedule SSIS Packages

What is SOAP Web Service?

If you are new to SOAP Web Service sometimes referred as XML Web Service then please read some concept about SOAP Web service standard from this link

There are two important aspects in SOAP Web service.

  1. Getting WSDL file or URL
  2. Knowing exact Web Service URL

What is WSDL

In very simple term WSDL (often pronounced as whiz-dull) is nothing but a document which describes Service metadata (e.g. Functions you can call, Request parameters, response structure etc). Some service simply give you WSDL as xml file you can download on local machine and then analyze or sometimes you may get direct URL (e.g. http://api.mycompany.com/hr-soap-service/?wsdl )

What is Service URL

Service URL is actual API URL you can call to get data. When you make a request to SOAP service url make sure following things.

  1. Use correct service URL (Its not same as WSDL url). If you are not sure about service URL contact API vendor or refer API documentation.
  2. Each service call you have to supply function you want to call. This can be done in 3 different ways.
    1. Pass via SOAPAction HTTP Header
    2. Pass via Url parameter or Url Path (http://myserver/service/function1  — http://myserver/service/?method=function1 )
    3. Pass via Request BODY
  3. Find out how to pass credentials. It can be done via Basic Authorization or WSS Security Header in the Request body. Check this link to learn more

Using SoapUI to test SOAP API call / Create Request Body XML

If you do not have WSDL file or URL handy then contact your API provider (sometimes you just have to add ?wsdl at the end of your Service URL to get WSDL so try that. Example: http://mycompany/myservice?wsdl ). If you don't know what is WSDL then in short, WSDL is Web service Description Language (i.e. XML file which describes your SOAP Service). WSDL helps to craft SOAP API request Body for ZappySys XML Driver. So Let's get started.

  1. Download and Install SoapUI (It’s a Free tool to test SOAP / REST Services)
  2. Open SoapUI and click SOAP button to create new SOAP Project
  3. Enter WSDL URL or File Path of WSDLFor example WSDL for our sample service can be accessed via this URL
    http://www.holidaywebservice.com/HolidayService_v2/HolidayService2.asmx?wsdl
    Create new SOAP API Project in SoapUI tool for SOAP API Testing
    Create new SOAP API Project in SoapUI tool for SOAP API Testing
  4. Once WSDL is loaded you will see possible operations you can call for your SOAP Web Service.
  5. If your web service requires credentials then you have to configure it. There are two common credential types for public services (SOAP WSS or BASIC )
    1. To use SOAP WSS Credentials select request node and enter UserId, Password, and WSS-PasswordType (PasswordText or PasswordHash)
      Configure SOAP WSS Credentials for SoapUI (SOAP API Testing Tool)
      Configure SOAP WSS Credentials for SoapUI (SOAP API Testing Tool)
    2. To use BASIC Auth Credentials select request node and double-click it. At the bottom click on Auth (Basic) and From Authorization dropdown click Add New and Select Basic. Configure Basic Authorization for SoapUI (SOAP API Testing Tool)
      Configure Basic Authorization for SoapUI (SOAP API Testing Tool)
  6. Now you can test your request first Double-click on the request node to open request editor.
  7. Change necessary parameters, remove optional or unwanted parameters. If you want to regenerate request you can click on Recreate default request toolbar icon. Create SOAP Request XML (With Optional Parameters)
    Create SOAP Request XML (With Optional Parameters)
  8. Once your SOAP Request XML is ready, Click the Play button in the toolbar to execute SOAP API Request and Response will appear in Right side panel. Test SOAP API using SoapUI Tool (Change Default XML Body / Parameters, Execute and See Response)
    Test SOAP API using SoapUI Tool (Change Default XML Body / Parameters, Execute and See Response)

Once you have tested your SOAP API in SoapUI tool, we are ready to use ZappySys SSIS Tasks/Components or ODBC Drivers to call SOAP API in SSIS or your preferred BI tool or Programming language.

How to read data from Soap in SSIS (Export data)

In this section we will learn how to configure and use Soap Connector in the API Source to extract data from the Soap.

  1. Now Download SoapUI (Its popular free third-party tool by other vendor). SoapUI can help you to generate XML Request BODY easily by using WSDL file. You can also test your service by supplying parameters.
  2. Now find out your SOAP Service WSDL URL. It can be URL or locally stored XML file. WSDL is standard to describes SOAP Service (e.g. Available functions, request/response format). For SSRS WSDL is located usually at below location. Sometime WSDL URL is not correctly downloaded in SoapUI in that case use web browser to download WSDL and save to local disk.
  3. Now launch SoapUI. Click on File menu and Select New SOAP Project
  4. Enter your WSDL file path or URL
  5. Click OK to create Project. This will create some dummy requests for you. If you want to see all available parameter in your Request you can create New Request by right click on Method node and select New Request. When prompted to create optional parameters then click yes.
    Create new SoapUI project to generate / test Soap Requests

    Create new SoapUI project to generate / test Soap Requests

  6. Click on Request node as below and it will show you XML code for your SOAP request. You can edit parameters as needed. We will use this code in our XML Source to build SOAP Request. Some time your SOAP Service may require UserID/Password in SOAP Body or via Authorization Header like this one. If you passing credentials Authorization header then you can use ZS-HTTP connection (on XML Source UI check Use Credentials option and create new connection)
    SOAP Request XML

    SOAP Request XML

  7. Begin with opening Visual Studio and Create a New Project.

  8. Select Integration Service Project and in new project window set the appropriate name and location for project. And click OK.

  9. In the the new SSIS project screen you will find the following:

    1. SSIS ToolBox on left side bar
    2. Solution Explorer and Property Window on right bar
    3. Control flow, data flow, event Handlers, Package Explorer in tab windows
    4. Connection Manager Window in the bottom
    SSIS Project Screen
    Note: If you don't see ZappySys SSIS PowerPack Task or Components in SSIS Toolbox, please refer to this help link.

  10. Now, Drag and Drop SSIS Data Flow Task from SSIS Toolbox. Double click on the Data Flow Task to see Data Flow designer.
    SSIS Data Flow Task - Drag and Drop

  11. From the SSIS toolbox drag and drop XML Source on the dataflow designer surface
    SSIS XML Source - Drag and Drop

  12. Double click on XML Source component to configure it.

  13. From the Access Mode dropdown select [File path or web Url] and paste the following Url for this example.
    Now find out your SOAP Service WSDL URL. It can be URL or locally stored XML file. WSDL is standard to describes SOAP Service (e.g. Available functions, request/response format). For SSRS WSDL is located usually at below location. Sometime WSDL URL is not correctly downloaded in SoapUI in that case use web browser to download WSDL and save to local disk.

    NOTE: Here for demo, We are using odata API, but you need to refer your own API documentation and based on that you need to use your own API URL and need to configure connection based on API Authentication type.

  14. While making SOAP Request you have to configure following items in your XML Source.
    • URL
    • Request Method (e.g. POST)
    • Headers
    • Request Body (for request SOAP XML)
  15. Double click XML Source to configure it.
    1. Set webservice URL
    2. Set request method to POST
    3. In the headers grid click Raw Edit to add 2 more headers as below.
      If you not sure about SOAP Action then find out from SoapUI > Raw Tab of Request Panel. Headers are only generated if you click the green Play button in SoapUI. Copy following two headers from SoapUI Raw tab and paste under SSIS XML Source > Headers Grid > Raw Edit. 
      Content-Type: text/xml;charset=UTF-8
      SOAPAction: "http://some-url-of-your-api-call"
      SOAPAction URL is also listed under the following place in SoapUI.

      How to find SOAPAction Header value using SoapUI tool

      How to find SOAPAction Header value using SoapUI tool

  16. Now click on Edit option next to Body Textbox. You can Copy sample Request XML generated in SoapUI and paste in Request Data (See below screenshot). You have to make sure to include all required fields in your XML Request (You may create new XML request in SoapUI with include Optional fields Turned ON to see all parameters).
  17. XML Source supports using Placeholders in request URL, body and headers so its great way to make things dynamic. If you have need to use placeholders then you can use {Insert Variable} option like below screenshot and add variable anywhere in the text.
  18. You can also edit Filter to control how data is returned. If you have Nested nodes in XML response you can select data node which you care about. Click select Filter button to navigate through hierarchy.
    Filter SOAP Web Service - XML response data

    Filter SOAP Web Service – XML response data

  19. Un-check include parent option if you don’t care about getting parent attributes.
  20. Your final UI may look like below after setting Url, Method, Body and Headers.
    Calling SOAP Web Service in SSIS using XML Source Connector

    Calling SOAP Web Service in SSIS using XML Source Connector

  21. On Array handling tab you can type all the element names you know for sure that going to have one or more records. For example if your response looks like below you can enter a:row in the possible array fields on Array Handling tab. That way if you have just one record rather than multiple records Filter expression like this wont fail ( $.a:response.a:data.a:row[*] ) .
    <a:response>
    	<a:data>
    		<a:row>....</a:row>
    		<a:row>....</a:row>
    	</a:data>
    </a:response>
    
     
  22. Now once all settings entered. Click Preview.
    Set Filter and Preview SOAP Web Service Response in Table Format

    Set Filter and Preview SOAP Web Service Response in Table Format

  23. That's it; we are done. In a few clicks we configured the call to Soap using ZappySys Soap Connector

Read large XML string in SSIS (3 Million Rows in 3 Mins)

Using ZappySys SSIS XML Source you can read large XML String data (Process 3 Million rows in 3 minutes – 1.2 GB file). Using --FAST Expression and other options.

If you use default settings to read data then it may result into OutOfMemory Exception so we will outline few techniques which will enable high performance Streaming Mode rather than In-memory load of entire data.

Please refer to this article for the same: How to read large XML / JSON file in SSIS

Configuring pagination in the XML Source

ZappySys XML Source equips users with powerful tools for seamless data extraction and management from REST APIs, leveraging advanced pagination methods for enhanced efficiency. These options are designed to handle various types of pagination structures commonly used in APIs. Below are the detailed descriptions of these options:

  1. Page-based Pagination: This method works by retrieving data in fixed-size pages from the Rest API. It allows you to specify the page size and navigate through the results by requesting different page numbers, ensuring that you can access all the data in a structured manner.

  2. Offset-based Pagination: With this approach, you can extract data by specifying the starting point or offset from which to begin retrieving data. It allows you to define the number of records to skip and fetch subsequent data accordingly, providing precise control over the data extraction process.

  3. Cursor-based Pagination: This technique involves using a cursor or a marker that points to a specific position in the dataset. It enables you to retrieve data starting from the position indicated by the cursor and proceed to subsequent segments, ensuring that you capture all the relevant information without missing any records.

  4. Token-based Pagination: In this method, a token serves as a unique identifier for a specific data segment. It allows you to access the next set of data by using the token provided in the response from the previous request. This ensures that you can systematically retrieve all the data segments without duplication or omission.

Utilizing these comprehensive pagination features in the ZappySys XML Source facilitates efficient data management and extraction from REST APIs, optimizing the integration and analysis of extensive datasets.

For more detailed steps, please refer to this link: How to do REST API Pagination in SSIS / ODBC Drivers

ZappySys Authentication

ZappySys offers various authentication methods to securely access data from various sources. These authentication methods include OAuth, Basic Authentication, Token-based Authentication, and more, allowing users to connect to a wide range of data sources securely.

ZappySys Authentication is a robust system that facilitates secure access to data from a diverse range of sources. It includes a variety of authentication methods tailored to meet the specific requirements of different data platforms and services. These authentication methods may involve:

  1. OAuth: ZappySys supports OAuth for authentication, which allows users to grant limited access to their data without revealing their credentials. It's commonly used for applications that require access to user account information.

  2. Basic Authentication: This method involves sending a username and password with every request. ZappySys allows users to securely access data using this traditional authentication approach.

  3. Token-based Authentication: ZappySys enables users to utilize tokens for authentication. This method involves exchanging a unique token with each request to authenticate the user's identity without revealing sensitive information.

By implementing these authentication methods, ZappySys ensures the secure and reliable retrieval of data from various sources, providing users with the necessary tools to access and integrate data securely and efficiently. For more comprehensive details on the authentication process, please refer to the official ZappySys documentation or reach out to their support team for further assistance.

For more details, please refer to this link: ZappySys Connections

Load Soap data in SQL Server using Upsert Destination (Insert or Update)

Once you read data from the desired source, now let's see how to Load Soap data in SQL Server using Upsert Destination. Upsert Destination can Merge/Synchronize data from source to target for Microsoft SQL Server, PostgreSql and Redshift. It supports very fast Bulk Upsert (Update or Insert) operation along and Bulk delete.

  1. From the SSIS toolbox drag and drop Upsert Destination on the dataflow designer surface

  2. Connect our Source component to Upsert Destination

  3. Double click on Upsert Destination component to configure it.

  4. Select the desired Microsoft SQL Server/PostgreSql/Redshift Target Connection or click NEW to create new connection. Select Target Table or click NEW to create new table based on source columns.
    Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS
    Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS

  5. Set Action to Upsert => (insert if not matching in target else update). Select Target Connection and Target Table. Check on Insert and Update. Click on Map All to Mappings all columns and check on Only Primary Key columns.
    SSIS SQL Upsert option

  6. Click on OK to save Upsert Destination settings UI.

  7. That's it; we are done. Run the SSIS Package and it will read the data from the Soap and load the the data in the SQL Server/PostgreSql/Redshift.

Conclusion

In this article we discussed how to connect to SOAP API in SSIS and integrate data without any coding. Click here to Download SOAP API Connector for SSIS and try yourself see how easy it is. If you still have any question(s) then ask here or simply click on live chat icon below and ask our expert (see bottom-right corner of this page).

Download SOAP API Connector for SSIS Documentation 


Other App Integration scenarios for SOAP API

Other Connectors for SSIS


Download SOAP API Connector for SSIS Documentation

  • How to connect SOAP API in SSIS?

  • How to get SOAP API data in SSIS?

  • How to read SOAP API data in SSIS?

  • How to load SOAP API data in SSIS?

  • How to import SOAP API data in SSIS?

  • How to pull SOAP API data in SSIS?

  • How to push data to SOAP API in SSIS?

  • How to write data to SOAP API in SSIS?

  • How to POST data to SOAP API in SSIS?

  • Call SOAP API API in SSIS

  • Consume SOAP API API in SSIS

  • SOAP API SSIS Automate

  • SOAP API SSIS Integration

  • Integration SOAP API in SSIS

  • Consume real-time SOAP API data in SSIS

  • Consume real-time SOAP API API data in SSIS

  • SOAP API ODBC Driver | ODBC Driver for SOAP API | ODBC SOAP API Driver | SSIS SOAP API Source | SSIS SOAP API Destination

  • Connect SOAP API in SSIS

  • Load SOAP API in SSIS

  • Load SOAP API data in SSIS

  • Read SOAP API data in SSIS

  • SOAP API API Call in SSIS