Introduction
In this post we will learn how to access data from Oracle UCM Web Service (Middle layer for WebLogic) and load into SQL Server or any other target. We will use SSIS XML Source to achieve this result.
Prerequisites
Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:- SSIS designer installed. Sometimes it is referred to as BIDS or SSDT (download it from the Microsoft site).
- Basic knowledge of SSIS package development using Microsoft SQL Server Integration Services.
- Make sure ZappySys SSIS PowerPack is installed (download it, if you haven't already).
- (Optional step). Read this article, if you are planning to deploy packages to a server and schedule their execution later.
About Oracle UCM Web Service
If you are not sure what is SOAP Web Service and how to call in SSIS, First read this article to understand general concepts of calling SOAP API in SSIS.
UCM Web Service offers calling various commands. You have to send XML Request and server will send you XML response with requested data. We will use Array Transformation Technique (Key / Value Pattern) to extract complex nested XML data.
Step-By-Step
Now let’s look at how to call Oracle UCM SOAP API in SSIS.
Read from Oracle UCM Web Service using XML Source
- Drag Data Flow Task in SSIS Designer
- Inside Data flow drag ZS SSIS XML Source from toolbox
- First enter URL as below (Replace INSTANCE ID with your own instance)
1https://YOUR-INSTANCE-ID.oraclecloud.com/idcws/GenericSoapPort - Now Check Use Credentials and select new ZS-HTTP connection
- Enter your User ID and Password to call Web Service using Basic Authentication. Click OK to save.
- On XML Source UI Select Content Type = XML (text / xml, charset=UTF-8)
- Select Request Method as POST
- Click Enter Raw Edit for HTTP Headers and enter below
1SOAPAction: "urn:GenericSoap/GenericSoapOperation" - Click on Edit Body and enter your Request Body in XML format.For example to call GET_SEARCH_RESULTS service to retrieve the search results for the passed query text you can submit Request Body as below.
NOTICE: String in Search Text was surrounded by backtick ( ` ). Single tick / double quote didn’t work in our case.
1234567891011<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ucm="http://www.oracle.com/UCM"><soapenv:Body><ucm:GenericRequest webKey="cs"><ucm:Service IdcService="GET_SEARCH_RESULTS"><ucm:Document><ucm:Field name="QueryText">dDocTitle <starts> `MY_sites_201`</ucm:Field></ucm:Document></ucm:Service></ucm:GenericRequest></soapenv:Body></soapenv:Envelope>
- Now Select Filter (Browse upto Fields under SearchResult node. Once you click OK try to edit your Expression so it looks like below. As you may notice we changed ResultSet[*] to ResultSet[?(@@name==’SearchResults’)]
This will ensure that we extract records from only SearchResult Node and not other nodes such as UserAttribInfo or EnterpriseSearchResults
1$.env:Envelope.env:Body.ns2:GenericResponse.ns2:Service.ns2:Document.ns2:ResultSet[?(@@name=='SearchResults')].ns2:Row[*] - Now go to 2D Array Tab. Select Key / Value Pattern Option.
- Select Column Names / Value Filters as below. You can Use Browse Option to navigate to that field or just type below directly. Below expression will Transform Rows into Column. Foreach attribute name we will get one column.Column Name Filter => $.ns2:Field[*].@name
Column Value Filter => $.ns2:Field[*].#text - Now Click Preview to confirm it works

- That’s it, you can now click OK to close UI.
Loading Oracle UCM SOAP API data into SQL Server / Other Target
ZappySys SSIS PowerPack makes it easy to load data from various sources such as REST, SOAP, JSON, XML, CSV or from other source into SQL Server, or PostgreSQL, or Amazon Redshift, or other targets. The Upsert Destination component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.
Step 1: Add Upsert Destination to Data Flow
- Drag and drop the Upsert Destination component from the SSIS Toolbox.
- Connect your source component (e.g., JSON / REST / Other Source) to the Upsert Destination.
Step 2: Configure Target Connection
- Double-click the Upsert Destination component to open the configuration window.
- Under Connection, select an existing target connection or click NEW to create a new connection.
- Example: SQL Server, or PostgreSQL, or Amazon Redshift.
Step 3: Select or Create Target Table
- In the Target Table dropdown, select the table where you want to load data.
- Optionally, click NEW to create a new table based on the source columns.
Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS
Step 4: Map Columns
- Go to the Mappings tab.
- Click Auto Map to map source columns to target columns by name.
- Ensure you check the Primary key column(s) that will determine whether a record is inserted or updated.
- You can manually adjust the mappings if necessary.
Step 5: Save Settings
- Click OK to save the Upsert Destination configuration.
Step 6: Optional: Add Logging or Analysis
- You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.
Step 7: Execute the Package
- Run your SSIS package and verify that the data is correctly inserted and updated in the target table.
Conclusion
In this post we saw how easy it is to consume XML SOAP Web Service in SSIS. We called SOAP Service for Oracle UCM Web Service and loaded data into target like SQL Server. You can download SSIS PowerPack and try many other scenarios like this using 70+ other SSIS Tasks /Components not mentioned in this article.







