<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SSIS JSON Parser Task Archives | ZappySys Blog</title>
	<atom:link href="https://zappysys.com/blog/category/ssis/tasks/ssis-json-parser-task/feed/" rel="self" type="application/rss+xml" />
	<link>https://zappysys.com/blog/category/ssis/tasks/ssis-json-parser-task/</link>
	<description>SSIS / ODBC Drivers / API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more</description>
	<lastBuildDate>Mon, 07 Apr 2025 13:05:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.4</generator>

<image>
	<url>https://zappysys.com/blog/wp-content/uploads/2023/01/cropped-zappysys-symbol-large-32x32.png</url>
	<title>SSIS JSON Parser Task Archives | ZappySys Blog</title>
	<link>https://zappysys.com/blog/category/ssis/tasks/ssis-json-parser-task/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Parse JSON using SQL Server 2014 or lower</title>
		<link>https://zappysys.com/blog/parse-json-sql-server/</link>
		
		<dc:creator><![CDATA[ZappySys Team]]></dc:creator>
		<pubDate>Fri, 23 Mar 2018 23:34:44 +0000</pubDate>
				<category><![CDATA[SSIS JSON Parser Task]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=3126</guid>

					<description><![CDATA[<p>Parse JSON using SQL Server 2014 or lower Hello, this time we will show how to parse JSON in SQL Server 2014 or other versions. we will use a simple tool easy to use and we do not need programming knowledge. Solution In this article we will learn how to parse JSON in SQL Server using [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/parse-json-sql-server/">Parse JSON using SQL Server 2014 or lower</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Parse JSON using SQL Server 2014 or lower</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-json-parser-task.png"><img decoding="async" class="alignleft wp-image-3132 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-json-parser-task.png" alt="logo parse json" width="100" height="100" /></a>Hello, this time we will show how to parse JSON in SQL Server 2014 or other versions. we will use a simple tool easy to use and we do not need programming knowledge.</p>
<h2></h2>
<h2></h2>
<h2>Solution</h2>
<p>In this article we will learn how to parse JSON in SQL Server using a Free tool that can be installed with SSIS that can be downloaded from the internet. If you do not have any experience in SSIS, do not worry. This is a great opportunity to learn. This article will not take long.</p>
<h2>Requirement</h2>
<ul>
<li>First, make sure that you have SQL Server.</li>
<li>Also, check to install SSIS (it is included with the SQL Server installer).</li>
<li>And finally, make sure to install <a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt">SSDT</a></li>
</ul>
<h2>Getting Started</h2>
<p>SQL Server 2016 and later versions include JSON support. You can work with JSON in T-SQL like you did with XML. However, it requires some programming knowledge to work with it and it is not simple if you do not have JSON or XML experience.</p>
<p>In this example, we will show 2 examples.</p>
<ol>
<li>First, we will show a simple example of how to parse a JSON file and get values in variables.</li>
<li>Secondly, we will show how to get JSON values from a variable and store the variable values in SQL Server.</li>
</ol>
<h4>1. Example to get values from JSON into variables</h4>
<p>Let&#8217;s start the first demo</p>
<ol>
<li>First of all, we will first download a free tool named <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-parser-task-free/">SSIS JSON Parser Task.</a> This task will help us to parse the JSON data. Once installed, drag and drop to the design pane. With the installer, you will also have another free tool. The ZS Logging Task
<div id="attachment_3135" style="width: 760px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/zs-json-parser-task.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-3135" class="wp-image-3135 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/zs-json-parser-task.jpg" alt="ZS JSON Parser Task in SSIS" width="750" height="357" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/zs-json-parser-task.jpg 750w, https://zappysys.com/blog/wp-content/uploads/2018/03/zs-json-parser-task-300x143.jpg 300w" sizes="(max-width: 750px) 100vw, 750px" /></a><p id="caption-attachment-3135" class="wp-caption-text">Drag and drop json parser task</p></div></li>
<li>Secondly, we will create two SSIS variables first that will store the JSON values. In SSDT, go to the <strong>SSIS</strong> menu and select<strong> Variables. </strong>Create two variables. CustomerID and CustomerName of type String:
<div id="attachment_3136" style="width: 428px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/SSIS-variables-json.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3136" class="wp-image-3136 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/SSIS-variables-json.jpg" alt="Customerid in variable ssis" width="418" height="152" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/SSIS-variables-json.jpg 418w, https://zappysys.com/blog/wp-content/uploads/2018/03/SSIS-variables-json-300x109.jpg 300w" sizes="(max-width: 418px) 100vw, 418px" /></a><p id="caption-attachment-3136" class="wp-caption-text">ssis variable</p></div></li>
<li>Also, we will use the following JSON text:<br />
<pre class="crayon-plain-tag">{
"CustomerID": "ALFKI",
"CustomerName": "Alfredo Koli",
"Age": 55,
"LocationInfo": {"City":"Newyork", "State":"NY", "Zip":"23234"},
"OrderIDList": [111,222,333,444,555]
}</pre>
</li>
<li>Using the ZS JSON parser task, map CustomerID and CustomerName to the user variables created before:
<div id="attachment_3138" style="width: 657px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-map-json-variables.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3138" class="wp-image-3138 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-map-json-variables.jpg" alt="Map json into variable in SSIS" width="647" height="425" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-map-json-variables.jpg 647w, https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-map-json-variables-300x197.jpg 300w" sizes="(max-width: 647px) 100vw, 647px" /></a><p id="caption-attachment-3138" class="wp-caption-text">Mapping JSON values into variables</p></div></li>
<li>For demonstration purposes, the age will be set to LOG-TO-OUTPUT. This means that the values will be displayed in the SSIS Output pane:
<div id="attachment_3141" style="width: 651px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/log-ssis-variable-output-value.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3141" class="wp-image-3141 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/log-ssis-variable-output-value.jpg" alt="Log variable values in JSON" width="641" height="425" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/log-ssis-variable-output-value.jpg 641w, https://zappysys.com/blog/wp-content/uploads/2018/03/log-ssis-variable-output-value-300x199.jpg 300w" sizes="(max-width: 641px) 100vw, 641px" /></a><p id="caption-attachment-3141" class="wp-caption-text">Send value to log in SSIS</p></div></li>
<li>In addition, we will verify the values of the variables. To do that, we will use another free tool.  The ZS Logging Task that comes with the ZS JSON Parser task. This tool can display the variable values in the SSIS output (ExecutionLog) in a MessageBox a file or a variable. In this example, we will show the variable values in the SSIS output:
<div id="attachment_3143" style="width: 634px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-check-variable-values-log.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3143" class="wp-image-3143 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-check-variable-values-log.jpg" alt="Send variables to execution log" width="624" height="565" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-check-variable-values-log.jpg 624w, https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-check-variable-values-log-300x272.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><p id="caption-attachment-3143" class="wp-caption-text">Set values to ExecutionLog</p></div></li>
<li>Finally, run the packages and check the output. If you cannot see the output, go to<strong> View</strong> in the menu and select <strong><strong>Output.</strong></strong>
<div id="attachment_3145" style="width: 1255px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3145" class="wp-image-3145 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values.jpg" alt="SSIS output variable values" width="1245" height="144" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values.jpg 1245w, https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values-300x35.jpg 300w, https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values-768x89.jpg 768w, https://zappysys.com/blog/wp-content/uploads/2018/03/ssis-output-variable-values-1024x118.jpg 1024w" sizes="(max-width: 1245px) 100vw, 1245px" /></a><p id="caption-attachment-3145" class="wp-caption-text">Check SSIS variables in log</p></div>
<p>Also, the JSON Parser task shows that the age is 55. You can verify this value in the JSON data in step 3. Also, the Logging task is showing the CustomerId and the CustomerName values that can be verified and compared with the step 3 that contains the JSON objects and arrays.</li>
</ol>
<h3>2. Second example. Storing and showing how to parse JSON in SQL Server</h3>
<p>In the first example, we learned how to parse JSON values and store them in SSIS variables and how to send values to the output. In this new example, we will show how to parse JSON values in SQL Server.</p>
<ol>
<li>First of all, will be to create a simple table in SQL Server to store JSON values:<br />
<pre class="crayon-plain-tag">CREATE TABLE [dbo].[book](
[author] [nchar](50) NULL,
[isbn] [nchar](20) NULL,
[price] [decimal](18, 0) NULL,
[category] [nchar](20) NULL,
[id] [smallint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_book] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO</pre>
</li>
<li>Secondly, we will use the following JSON data.<br />
<pre class="crayon-plain-tag">{ "store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}</pre>
&nbsp;</li>
<li>Also, will create the variables first. The inputjson will contain the JSON data from the previous step:
<div id="attachment_3148" style="width: 671px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/variables-json-file.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3148" class="wp-image-3148 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/variables-json-file.jpg" alt="ssis variables" width="661" height="226" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/variables-json-file.jpg 661w, https://zappysys.com/blog/wp-content/uploads/2018/03/variables-json-file-300x103.jpg 300w" sizes="(max-width: 661px) 100vw, 661px" /></a><p id="caption-attachment-3148" class="wp-caption-text">ssis variables</p></div></li>
<li>Once it is done,  will be to insert a variable this time. We will use the Insert Variable option and insert the inputjson variable that contains the JSON values. We will also use a filter to show just the 3rd book information (the first element index is 0). Path filters in JSON are out of the scope of this article, but you can read a nice article about the topic <a href="http://goessner.net/articles/JsonPath/">here</a>. Press the Parse Field to parse the values. Finally, map the author, category, isbn and price variables:
<div id="attachment_3151" style="width: 810px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/json-parser-path-filter-ssis.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3151" class="wp-image-3151 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/json-parser-path-filter-ssis.jpg" alt="Filter to parse JSON in SQL Serveron data" width="800" height="612" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/json-parser-path-filter-ssis.jpg 800w, https://zappysys.com/blog/wp-content/uploads/2018/03/json-parser-path-filter-ssis-300x230.jpg 300w, https://zappysys.com/blog/wp-content/uploads/2018/03/json-parser-path-filter-ssis-768x588.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></a><p id="caption-attachment-3151" class="wp-caption-text">Using filters</p></div></li>
<li>After that,  drag and drop the Execute SQL Task and join it with the JSON Parser to receive the variable values. Specify a connection with the server name and database name where the table of step 1 was created. In SQLStatement, write the following query:<br />
<pre class="crayon-plain-tag">INSERT INTO [dbo].[book]
(
[author],
[isbn],
[price],
[category]
)
VALUES
(?,?,?,?
)</pre>
This query will insert the 4 SSIS parameters in SQL Server:</p>
<div id="attachment_3150" style="width: 747px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-ssis.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3150" class="wp-image-3150 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-ssis.jpg" alt="Insert JSON values into SQL Server" width="737" height="633" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-ssis.jpg 737w, https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-ssis-300x258.jpg 300w" sizes="(max-width: 737px) 100vw, 737px" /></a><p id="caption-attachment-3150" class="wp-caption-text">Execute SQL Task</p></div></li>
<li>Also, in parameter mapping, specify the variable name, direction, data type and Paremeter name:
<div id="attachment_3149" style="width: 745px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-parameter-mapping.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3149" class="gr-progress wp-image-3149 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-parameter-mapping.jpg" alt="Map SSIS variables" width="735" height="630" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-parameter-mapping.jpg 735w, https://zappysys.com/blog/wp-content/uploads/2018/03/execute-sql-task-parameter-mapping-300x257.jpg 300w" sizes="(max-width: 735px) 100vw, 735px" /></a><p id="caption-attachment-3149" class="wp-caption-text">Map variables into SQL</p></div></li>
<li>Finally, run the package and you will be able to see the value stored in SQL Server book table:
<div id="attachment_3157" style="width: 394px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/03/result.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3157" class="wp-image-3157 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/result.jpg" alt="check table results" width="384" height="102" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/result.jpg 384w, https://zappysys.com/blog/wp-content/uploads/2018/03/result-300x80.jpg 300w" sizes="(max-width: 384px) 100vw, 384px" /></a><p id="caption-attachment-3157" class="wp-caption-text">Check results</p></div></li>
</ol>
<h2>Conclusion</h2>
<p>As a conclusion, we can say that it is possible to parse JSON in SQL Server using SSIS additional tasks and it does not require to know T-SQL or code to get JSON values.</p>
<h2>References</h2>
<p>Finally, you can use the following links for more information about REST API and SQL Server:</p>
<ul>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server">JSON data in SQL Server</a></li>
<li><a href="http://goessner.net/articles/JsonPath/">JSONPath &#8211; XPath for JSON</a></li>
</ul>
<p>keywords: parse JSON in SQL Server</p>
<p>The post <a href="https://zappysys.com/blog/parse-json-sql-server/">Parse JSON using SQL Server 2014 or lower</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Import / Export data from Zuora API using SSIS</title>
		<link>https://zappysys.com/blog/how-to-import-export-data-zuora-api-using-ssis/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 24 Jan 2018 18:57:41 +0000</pubDate>
				<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[SSIS JSON Parser Task]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS OAuth Connection]]></category>
		<category><![CDATA[SSIS REST API Task]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[zuora]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=2515</guid>

					<description><![CDATA[<p>Introduction In this post, we will learn how to call Zuora API using SSIS.  We will go through steps to read data from Zuora and load into SQL Server using  SSIS REST API Task  and  SSIS JSON Source . At the end of this article, you will find a complete sample (dtsx file). &#160; Tasks/Components in SSIS for [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/how-to-import-export-data-zuora-api-using-ssis/">How to Import / Export data from Zuora API using SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class=" wp-image-2520 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2018/01/zuora-api-integration-logo.png" alt="zuora-api-integration-logo" width="122" height="122" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/zuora-api-integration-logo.png 180w, https://zappysys.com/blog/wp-content/uploads/2018/01/zuora-api-integration-logo-150x150.png 150w" sizes="(max-width: 122px) 100vw, 122px" /></p>
<h2>Introduction</h2>
<p>In this post, we will learn how to call Zuora API using SSIS.  We will go through steps to read data from Zuora and load into SQL Server using  <a href="https://zappysys.com/products/ssis-powerpack/ssis-rest-api-web-service-task/">SSIS REST API Task</a>  and  <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/">SSIS JSON Source</a> . At the end of this article, you will find a complete sample (dtsx file).</p>
<p>&nbsp;</p>
<h2><span id="TasksComponents_in_SSISfor_Consuming_RESTful_API_WebService">Tasks/Components in SSIS for Consuming RESTful API / WebService</span></h2>
<p>Below are few components you can use to read/write data using REST API for any web service.</p>
<div class="su-table">
<table>
<colgroup>
<col width="100" />
<col /></colgroup>
<tbody>
<tr class="su-even">
<td><img decoding="async" src="https://i1.wp.com/zappysys.com/images/ssis-powerpack/SSIS-Json-Source-Adapter.png?w=720&amp;ssl=1" alt="Custom SSIS Components - Json Source" width="72" /></td>
<td style="vertical-align: top;"><a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/">JSON Source</a> (Read from REST API, JSON File or OData Service): Use this dataflow component when you have to <strong>fetch data from REST API webservice like a table</strong>. This component allows you to extract JSON data from webservice and de-normalize nested structure so you can save to Relational database such as SQL Server or any other target (Oracle, FlatFile, Excel, MySQL). This component also supports reading local JSON files or direct JSON string (Wildcard pattern supported too e.g. c:\data\file*.json).</td>
</tr>
<tr>
<td><img decoding="async" src="https://i2.wp.com/zappysys.com/onlinehelp/ssis-powerpack/scr/images/web-api-destination/ssis-web-api-destination.png?w=720&amp;ssl=1" alt="SSIS Custom Target Adapter - Web API Destination" width="72" /></td>
<td style="vertical-align: top;"><a href="https://zappysys.com/products/ssis-powerpack/ssis-web-api-destination-connector/">Web API Destination</a> (POST data to API URL) : Use this dataflow component when you have to load data into target system via API calls (<a href="https://zappysys.com/blog/http-post-in-ssis-send-data-to-web-api-url-json-xml/" target="_blank" rel="noopener">POST to URL</a>). E.g. Loading Contacts into Marketing System like <a href="https://zappysys.com/blog/get-data-from-mailchimp-in-ssis-using-rest-api-call/" target="_blank" rel="noopener">MailChimp</a> for email campaign. Loading documents into CRM or document storage systems e.g. Couchbase or <a href="https://zappysys.com/blog/call-elasticsearch-api-using-ssis/" target="_blank" rel="noopener">ElasticSearch</a>.</td>
</tr>
<tr class="su-even">
<td><img decoding="async" src="https://i0.wp.com/zappysys.com/images/ssis-powerpack/ssis-rest-api-web-service-task.png?w=720&amp;ssl=1" alt="Custom SSIS Tasks - SSIS Rest Api Web Service Task" width="72" /></td>
<td style="vertical-align: top;"><a href="https://zappysys.com/products/ssis-powerpack/ssis-rest-api-web-service-task/">REST API Task</a> : Use this task when you don’t want to pull REST API data in tabular format but want to call rest API for POST data to server, DELETE data from server or things like download HTML page, extract Authentication tokens etc where you not necessarily dealing data in tabular format. This task also allows you many other options such as saving RAW response into variable or file.</td>
</tr>
<tr>
<td><img decoding="async" src="https://i2.wp.com/zappysys.com/images/ssis-powerpack/ssis-xml-source.png?w=720&amp;ssl=1" alt="Custom SSIS Components - XML Source (Read File/SOAP/REST Web Service)" width="72" /></td>
<td style="vertical-align: top;"><a href="https://zappysys.com/products/ssis-powerpack/ssis-xml-source/">XML Source</a> (SOAP, File, REST) : Use this dataflow component when you have to fetch data from XML or SOAP webservice and consume data like a table. This component allows you to extract data from webservice and save to SQL Server or any other target (Oracle, FlatFile, Excel, MySQL). This component also supports reading local XML files or direct XML string.</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<h2><span id="Using_SSIS_JSON_Source_to_read_from_REST_API_and_load_into_SQL_Server">Screenshot of Complete SSIS Package (Zuora to SQL Server)</span></h2>
<p>Here is screenshot of our full process (we going to outline in next sections)</p>
<div id="attachment_2521" style="width: 923px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-zuora-api-call-read-data-load-to-sql-use-pagination.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2521" class="size-full wp-image-2521" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-zuora-api-call-read-data-load-to-sql-use-pagination.png" alt="SSIS Zuora API Integration - Read/Write Data (Load Zuora Data to SQL Server Table)" width="913" height="713" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-zuora-api-call-read-data-load-to-sql-use-pagination.png 913w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-zuora-api-call-read-data-load-to-sql-use-pagination-300x234.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-zuora-api-call-read-data-load-to-sql-use-pagination-768x600.png 768w" sizes="(max-width: 913px) 100vw, 913px" /></a><p id="caption-attachment-2521" class="wp-caption-text">SSIS Zuora API Integration &#8211; Read/Write Data (Load Zuora Data to SQL Server Table)</p></div>
<div class="content_block" id="custom_post_widget-2523"><h2><span id="Prerequisites">Prerequisites</span></h2>
Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:
<ol style="margin-left: 1.5em;">
 	<li><abbr title="SQL Server Integration Services">SSIS</abbr> designer installed. Sometimes it is referred to as <abbr title="Business Intelligence Development Studio">BIDS</abbr> or <abbr title="SQL Server Data Tools">SSDT</abbr> (<a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt" target="_blank" rel="noopener">download it from the Microsoft site</a>).</li>
 	<li>Basic knowledge of SSIS package development using <em>Microsoft SQL Server Integration Services</em>.</li>
 	<li>Make sure <span style="text-decoration: underline;"><a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a></span> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>, if you haven't already).</li>
 	<li>(<em>Optional step</em>)<em>.</em> <a href="https://zappysys.zendesk.com/hc/en-us/articles/360035974593" target="_blank" rel="noopener">Read this article</a>, if you are planning to deploy packages to a server and schedule their execution later.</li>
</ol></div>
<h2><span id="Using_SSIS_JSON_Source_to_read_from_REST_API_and_load_into_SQL_Server">Step-By-Step : Using SSIS JSON Source / REST API Task to read Zuora API </span></h2>
<p>Zuora API is somewhat different than other APIs we <a href="https://zappysys.com/blog/category/api-integration/" target="_blank" rel="noopener">documented here</a> because Zuora API uses very different Pagination Technique. Some common pagination techniques listed <a href="https://zappysys.com/blog/ssis-rest-api-looping-until-no-more-pages-found/" target="_blank" rel="noopener">here</a> but it&#8217;s not used by Zuora API so we have to do few extra steps.</p>
<p>Let&#8217;s look at step by step.</p>
<div class="su-note"  style="border-color:#e5dd9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#FFF7B7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">NOTE: Zuora API requires TLS 1.1 or Higher so make sure on all tasks / components / connection manager for zuora API is set to use <strong>TLS 1.1 or Higher</strong> (This setting is usually found on <strong>Advanced tab</strong> of OAuth Connection Manager / REST API Task / Web API Destination / JSON Source / XML Source. <a href="https://zappysys.zendesk.com/hc/en-us/articles/360000926174-How-to-enable-TLS-1-2-for-SSIS-2012-packages" target="_blank" rel="noopener">Click Here for more information</a>.</div></div>
<h3>Configure Zuora OAuth Connection</h3>
<p>The first step to connect to Zuora API is to configure  the OAuth App (Ask your Zuora Admin or Follow <a href="https://knowledgecenter.zuora.com/CF_Users_and_Administrators/A_Administrator_Settings/Manage_Users#Create_an_OAuth_Client_for_a_User" target="_blank" rel="noopener">Steps listed here</a>). Once you create Oauth App get ClientId and ClientSecret.</p>
<p>Now let&#8217;s create new SSIS</p>
<ol>
<li>Right click in the Connection Manager Panel &gt; Click New Connection&#8230;</li>
<li>Select ZS-OAUTH from the list</li>
<li>Configure OAuth Connection as below
<ol>
<li>Set OAuth Version <pre class="crayon-plain-tag">OAuth2</pre></li>
<li>Set OAuth Grant Type to <pre class="crayon-plain-tag">Client Credentials Grant</pre></li>
<li>Enter Client ID and Client Secret</li>
<li>For Token URL enter URL <pre class="crayon-plain-tag">https://rest.zuora.com/oauth/token</pre></li>
<li>Goto Advanced Tab. Select SSL/TLS Protocol <pre class="crayon-plain-tag">v3.0 or Higher</pre></li>
</ol>
</li>
<li>Click Test (Confirm Green Checkmark)</li>
<li>Click OK to Save</li>
</ol>
<div style="width: 869px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-oauth-connection-for-zuora-api.png"><img loading="lazy" decoding="async" class="size-full wp-image-2525" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-oauth-connection-for-zuora-api.png" alt="SSIS OAuth Connection For Zuora API" width="859" height="352" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-oauth-connection-for-zuora-api.png 859w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-oauth-connection-for-zuora-api-300x123.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-oauth-connection-for-zuora-api-768x315.png 768w" sizes="(max-width: 859px) 100vw, 859px" /></a><p class="wp-caption-text">SSIS OAuth Connection For Zuora API</p></div>
<p>&nbsp;</p>
<h3>Configure Variables</h3>
<p>Now lets configure few SSIS variables.</p>
<div id="attachment_2526" style="width: 909px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-variables-for-zuora-api-integration.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2526" class="size-full wp-image-2526" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-variables-for-zuora-api-integration.png" alt="SSIS Variables for Zuora API Integration" width="899" height="241" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-variables-for-zuora-api-integration.png 899w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-variables-for-zuora-api-integration-300x80.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-variables-for-zuora-api-integration-768x206.png 768w" sizes="(max-width: 899px) 100vw, 899px" /></a><p id="caption-attachment-2526" class="wp-caption-text">SSIS Variables for Zuora API Integration</p></div>
<div class="su-table su-table-alternate">
<table>
<tbody>
<tr>
<th>Name</th>
<th>Value</th>
<th>Expression</th>
</tr>
<tr>
<td>url  (String) <strong>Expression</strong></td>
<td>&#8212; blank &#8212;</td>
<td>
<pre class="crayon-plain-tag">@counter &gt; 0 
   ? "https://rest.zuora.com/v1/action/queryMore" 
   : "https://rest.zuora.com/v1/action/query"</pre>
</td>
</tr>
<tr>
<td>bodyString  (String)</td>
<td>
<pre class="crayon-plain-tag">{"queryString": "SELECT Id,Name,AccountNumber,Status FROM Account"}</pre>
&nbsp;</td>
<td></td>
</tr>
<tr>
<td>continue (Boolean)</td>
<td>True</td>
<td></td>
</tr>
<tr>
<td>doneFlag (Boolean)</td>
<td>False</td>
<td></td>
</tr>
<tr>
<td>queryLocator (String)</td>
<td>&#8212; blank &#8212;</td>
<td></td>
</tr>
<tr>
<td>responseFile (String)</td>
<td>c:\ssis\dump.json</td>
<td></td>
</tr>
<tr>
<td>counter (Int32)</td>
<td>0</td>
<td></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<h3>Configure API Pagination</h3>
<p>Now let&#8217;s configure For Loop such a way that it keeps looping until @continue flag is True</p>
<ol>
<li>Drag For Loop Task from SSIS Toolbox</li>
<li>Configure as below
<ol>
<li>Enter EvalExpression as <pre class="crayon-plain-tag">@continue==true</pre></li>
<li>Enter AssignExpression as <pre class="crayon-plain-tag">@counter=@counter+1</pre></li>
</ol>
</li>
</ol>
<div id="attachment_2527" style="width: 715px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-for-loop-task-api-pagination.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2527" class="size-full wp-image-2527" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-for-loop-task-api-pagination.png" alt="Configure API Pagination using For Loop Task" width="705" height="318" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-for-loop-task-api-pagination.png 705w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-for-loop-task-api-pagination-300x135.png 300w" sizes="(max-width: 705px) 100vw, 705px" /></a><p id="caption-attachment-2527" class="wp-caption-text">Configure API Pagination using For Loop Task</p></div>
<h3>Configure API Call using SSIS REST API Task</h3>
<p>Now let&#8217;s configure REST API Task to make a call to get data from Zuora API and save JSON response into File (which we will parse in next step)</p>
<p>So if we making the first request will call API via <pre class="crayon-plain-tag">https://rest.zuora.com/v1/action/query</pre>   and any call after that (2nd response or Higher) we will call <pre class="crayon-plain-tag">https://rest.zuora.com/v1/action/queryMore</pre> . This API uses SQL like query language ZOQL. <a href="https://knowledgecenter.zuora.com/DC_Developers/K_Zuora_Object_Query_Language" target="_blank" rel="noopener">Click here to learn more about ZOQL</a></p>
<p>This is controlled by Expression we defined in URL variable.</p>
<div id="attachment_2528" style="width: 819px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2528" class="wp-image-2528 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api.png" alt="Configure SSIS REST API Task - Call Zuora Query API (ZOQL - SQL Query)" width="809" height="422" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api.png 809w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-300x156.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-768x401.png 768w" sizes="(max-width: 809px) 100vw, 809px" /></a><p id="caption-attachment-2528" class="wp-caption-text">Configure SSIS REST API Task &#8211; Call Zuora Query API (ZOQL &#8211; SQL Query)</p></div>
<div id="attachment_2529" style="width: 803px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-save-to-json-file.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2529" class="size-full wp-image-2529" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-save-to-json-file.png" alt="Configure SSIS REST API Response Settings - Save Zuora Query to JSON File" width="793" height="319" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-save-to-json-file.png 793w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-save-to-json-file-300x121.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-configure-rest-api-task-call-zuora-query-api-save-to-json-file-768x309.png 768w" sizes="(max-width: 793px) 100vw, 793px" /></a><p id="caption-attachment-2529" class="wp-caption-text">Configure SSIS REST API Response Settings &#8211; Save Zuora Query to JSON File</p></div>
<h3>Configure Data Flow (Read Zuora Data and Load into SQL Server Table)</h3>
<p>We will skip this configuration on how to read JSON file and Save to SQL Server. Because it will be covered in next section.</p>
<p>Inside Data Flow when you configure ZS JSON Source</p>
<p>Make sure to set Filter to $.records[*]
<h3>Parse Pagination Attributes (done flag, queryLocator for next page)</h3>
<p>Once that done you can parse the response from saved File. We need to check for 2 attributes (done and queryLocator ). Parse JSON as below.</p>
<div id="attachment_2530" style="width: 735px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-parse-multiple-fields-from-json-save-variable.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2530" class="size-full wp-image-2530" src="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-parse-multiple-fields-from-json-save-variable.png" alt="SSIS JSON Parser Task - Parse Multiple Fields from JSON FIle and Save to Variable" width="725" height="520" srcset="https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-parse-multiple-fields-from-json-save-variable.png 725w, https://zappysys.com/blog/wp-content/uploads/2018/01/ssis-parse-multiple-fields-from-json-save-variable-300x215.png 300w" sizes="(max-width: 725px) 100vw, 725px" /></a><p id="caption-attachment-2530" class="wp-caption-text">SSIS JSON Parser Task &#8211;<br />Parse Multiple Fields from JSON FIle and Save to Variable</p></div>
<h3>Detect Last Page (Set Variables)</h3>
<p>Drag two Set Expression Tasks from SSIS Toolbox.</p>
<p>For First Task [Set Continue Flag] Enter Expression as <pre class="crayon-plain-tag">@continue=!@doneFlag</pre>
<p>For First Task [Set Query Locator ] Enter Expression as <pre class="crayon-plain-tag">@[User::bodyString]="{ \"queryLocator\" : \"" + @[User::queryLocator] + "\" }"</pre>
<h3>Save and execute Package</h3>
<p>That&#8217;s all now you can save package and execute. Check Progress.</p>
<div class="content_block" id="custom_post_widget-2516"><h2><span id="Debug_Web_API_call_using_Fiddler">Debug Web API call using Fiddler</span></h2>
To test how things looking behind the scene we strongly suggest to use <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/" target="_blank" rel="noopener">tool like  fiddler</a>.

You can double click the URL entry (Right side) to see Request and Response Panels. Top panel is Request (URL, Headers, Body) and Bottom Panel is Response.
<div id="attachment_2344" class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?ssl=1"><img loading="lazy" decoding="async" class="size-full wp-image-2344" style="border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;" src="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?resize=720%2C316&amp;ssl=1" sizes="(max-width: 720px) 100vw, 720px" srcset="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?w=1287&amp;ssl=1 1287w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?resize=300%2C131&amp;ssl=1 300w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?resize=768%2C337&amp;ssl=1 768w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?resize=1024%2C449&amp;ssl=1 1024w" alt="Debugging Web API call using Fiddler in SSIS" width="702" height="308" data-attachment-id="2344" data-permalink="https://zappysys.com/blog/pass-authorization-header-redirected-location/ssis-rest-api-call-debug-via-fiddler/#main" data-orig-file="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=1287%2C564&amp;ssl=1" data-orig-size="1287,564" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ssis-rest-api-call-debug-via-fiddler" data-image-description="&lt;p&gt;Debugging Web API call using Fiddler in SSIS&lt;/p&gt; " data-medium-file="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=300%2C131&amp;ssl=1" data-large-file="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=720%2C316&amp;ssl=1" /></a>
<p class="wp-caption-text">Debugging Web API call using Fiddler in SSIS</p>

</div>
<h2><span id="Loadingdata_fromREST_API_to_SQL_Server">Loading <span id="Loading_Graph_API_Office_365_data_to_SQL_Server">data from </span>REST API to SQL Server</span></h2>
Once you setup HTTP / OAUTH connection we can use <strong>JSON Source</strong> or <strong>XML Source</strong> to extract data from API and  load into SQL Server. If you are API is XML based API then use XML Source in below examples else use JSON Source.

For example purpose we will load data into SQL Server but you can load into any Target (e.g. Flat file, Oracle, Excel) using Microsoft or ZappySys Destination connectors

To load REST API data into SQL Server perform the following steps (<strong>Screenshots are generic</strong> and used for demonstration for purpose, <strong>your values can be different</strong> than below)
<ol>
 	<li>Go to SSIS Data Flow tab</li>
 	<li>Drag <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">ZS JSON Source</a> from the SSIS Toolbox (Use <a href="https://zappysys.com/products/ssis-powerpack/ssis-xml-source/" target="_blank" rel="noopener">ZS XML Source</a> if your API is XML based API)</li>
 	<li>Double click to edit Source</li>
 	<li>Set API URL you like to call, Check Use Credentials if you need to use HTTP or OAuth connection</li>
 	<li>Set Method / Body if its other than GET. For method other than GET make sure you select correct <strong>Content-Type</strong> from Dropdown (e.g. <strong>application/json</strong>). This indicate input data format in Body.</li>
 	<li>Set <strong>HTTP Headers</strong> if needed (in Most cases you won't need to set this)</li>
 	<li>Select Filter (many times this is not needed). If your API response has array node then select it here. For example if your response looks like this <strong>{ rows: [ {...}, {...}, {...} ] }</strong> then filter would be <strong>$.rows[*]</strong>. Select Array node you like to extract in the Filter selection UI.

<a href="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-get-data-google-bigquery-select-json-filter.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1573" src="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-get-data-google-bigquery-select-json-filter.png" alt="" width="675" height="363" srcset="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-get-data-google-bigquery-select-json-filter.png 675w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-get-data-google-bigquery-select-json-filter-300x161.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></a></li>
 	<li><a href="https://zappysys.com/blog/ssis-rest-api-looping-until-no-more-pages-found/" target="_blank" rel="noopener">Configure Pagination</a> if needed on the pagination tab. Check your API documentation see it supports pagination.</li>
 	<li>Click OK to Save component settings and generate <a href="https://zappysys.com/blog/handling-ssis-component-metadata-issues/" target="_blank" rel="noopener">desired metadata / columns for the output</a>.</li>
 	<li>Now drag <strong>OLEDB destination</strong> from the SSIS toolbox and drop on the Data Flow surface (technically you can use any valid Destination but for demo we will use OLEDB Destination)</li>
 	<li>Connect Source to Destination Component</li>
 	<li>On OLEDB destination select / create new SQL Connection and then Click "<strong>New Table</strong>"</li>
 	<li>Click on <strong>Mappings tab</strong> to map columns by names and click OK to save</li>
 	<li>Execute the Package</li>
</ol>
<div id="attachment_1617" class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png"><img loading="lazy" decoding="async" class="size-full wp-image-1617" style="border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;" src="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?resize=720%2C546" sizes="(max-width: 720px) 100vw, 720px" srcset="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?w=782 782w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?resize=300%2C227 300w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?resize=768%2C582 768w" alt="Configure SSIS OLEDB Destination - Loading Xero Data into SQL Server Table" width="702" height="532" data-attachment-id="1617" data-permalink="https://zappysys.com/blog/reading-loading-data-in-xero-sql-server-ssis/ssis-xero-to-sql-server-data-load/#main" data-orig-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?fit=782%2C593&amp;ssl=1" data-orig-size="782,593" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ssis-xero-to-sql-server-data-load" data-image-description="&lt;p&gt;Configure SSIS OLEDB Destination – Loading Xero Data into SQL Server Table&lt;/p&gt; " data-medium-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?fit=300%2C227&amp;ssl=1" data-large-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-to-sql-server-data-load.png?fit=720%2C546&amp;ssl=1" /></a>
<p class="wp-caption-text">Configure SSIS OLEDB Destination – Loading REST API Data into SQL Server Table</p>

</div>
<div id="attachment_1618" class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png"><img loading="lazy" decoding="async" class="size-full wp-image-1618" style="border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;" src="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?resize=720%2C533" sizes="(max-width: 720px) 100vw, 720px" srcset="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?w=734 734w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?resize=300%2C222 300w" alt="Xero to SQL Server Column Mappings for OLEDB Destination" width="702" height="519" data-attachment-id="1618" data-permalink="https://zappysys.com/blog/reading-loading-data-in-xero-sql-server-ssis/ssis-xero-sql-server-load-mappings/#main" data-orig-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?fit=734%2C543&amp;ssl=1" data-orig-size="734,543" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ssis-xero-sql-server-load-mappings" data-image-description="&lt;p&gt;Xero to SQL Server Column Mappings for OLEDB Destination&lt;/p&gt; " data-medium-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?fit=300%2C222&amp;ssl=1" data-large-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-xero-sql-server-load-mappings.png?fit=720%2C533&amp;ssl=1" /></a>
<p class="wp-caption-text">REST API to SQL Server Column Mappings for OLEDB Destination</p>

</div>
<div id="attachment_1619" class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png"><img loading="lazy" decoding="async" class="size-full wp-image-1619" style="border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;" src="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?resize=283%2C391" sizes="(max-width: 283px) 100vw, 283px" srcset="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?w=283 283w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?resize=217%2C300 217w" alt="Loading Xero data to SQL Server in SSIS" width="275" height="380" data-attachment-id="1619" data-permalink="https://zappysys.com/blog/reading-loading-data-in-xero-sql-server-ssis/ssis-loading-data-from-xero-to-sql-server/#main" data-orig-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?fit=283%2C391&amp;ssl=1" data-orig-size="283,391" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ssis-loading-data-from-xero-to-sql-server" data-image-description="&lt;p&gt;Loading Xero data to SQL Server in SSIS&lt;/p&gt; " data-medium-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?fit=217%2C300&amp;ssl=1" data-large-file="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-loading-data-from-xero-to-sql-server.png?fit=283%2C391&amp;ssl=1" /></a>
<p class="wp-caption-text">Loading REST API to SQL Server in SSIS</p>

</div>
<h2><span id="POST_Data_to_ServiceNow_API_Insert_Update_or_Delete">POST / Write Data to API (Insert, Update or Delete)</span></h2>
There will be a time you like to automate POST actions (e.g. create new incident via API call). <a href="https://zappysys.com/blog/http-post-in-ssis-send-data-to-web-api-url-json-xml/" target="_blank" rel="noopener">Check this article</a> to learn more on how to POST , DELETE, PUT data using API calls
<h2><span id="Common_Errors">Common Errors</span></h2>
There are many error can occur during runtime. Here are most common errors you may face at runtime.
<div id="custom_post_widget-1887" class="content_block">
<h3><span id="Truncation_related_error">Truncation related error</span></h3>
The most common error you may face when you run a SSIS package is truncation error. During the design time only 300 rows are scanned from a source (a file or a REST API call response) to detect datatypes but at runtime it is likely you will retrieve far more records. So it is possible that you will get longer strings than initially expected. For detailed instructions how to fix common metadata related errors read an article "<a href="https://zappysys.com/blog/handling-ssis-component-metadata-issues/" target="_blank" rel="noopener">How to handle SSIS errors (truncation, metadata issues)</a>".
<h3><span id="Authentication_related_error">Authentication related error</span></h3>
Another frequent error you may get is authentication error, which happens when you deploy/copy a package to another machine and run it there. Check <a href="https://zappysys.com/blog/loading-data-from-rest-api-to-sql-server-in-ssis/#Deployment_to_Production">Deployment to Production</a> below to see why it happens and how to solve this problem.

</div>
<h2><span id="Deployment_to_Production">Deployment to Production</span></h2>
<div id="custom_post_widget-1932" class="content_block">In SSIS package <a href="https://docs.microsoft.com/en-us/sql/integration-services/security/access-control-for-sensitive-data-in-packages" target="_blank" rel="noopener">sensitive data such as tokens and passwords are by default encrypted by SSIS</a> with your Windows account which you use to create a package. So SSIS will fail to decrypt tokens/passwords, when you run it from another machine using another Windows account. To circumvent this when you are creating a SSIS package which uses authentication components (e.g. an <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-oauth-connection-manager.htm" target="_blank" rel="noopener">OAuth Connection Manager</a> or an <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-http-connection-manager.htm" target="_blank" rel="noopener">HTTP Connection Manager</a> with credentials, etc.), consider using parameters/variables to pass tokens/passwords. In this way you won’t face authentication related errors when package is deployed to a production server. Check our article on <a href="https://zappysys.com/blog/how-to-run-an-ssis-package-with-sensitive-data-on-sql-server/" target="_blank" rel="noopener">how to configure packages with sensitive data on your production or development server</a>.</div></div>
<p>&nbsp;</p>
<h2>Download Sample SSIS Package (2012 or Higher Version)</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2018/01/ZuoraApiPagination.zip">Click here to download SSIS Sample Package &#8211; ZuoraApiPagination.dtsx</a></p>
<h2><span id="ConclusionWhat8217s_next">Conclusion. What’s next?</span></h2>
<p>In this article, we have learned how to load data from Zuora and load into SQL Server using SSIS ( drag and drop approach without coding). We used <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">SSIS JSON Source/REST API</a> to extract data from Zuora REST API using OAuth. JSON Source makes it super simple to parsing complex / large JSON Files or any Web API Response into rows and column so you can load into a database like SQL Server. <a href="https://zappysys.com/products/ssis-powerpack/">Download SSIS PowerPack</a> to try many other automation scenarios not discussed in this article.</p>
<p>The post <a href="https://zappysys.com/blog/how-to-import-export-data-zuora-api-using-ssis/">How to Import / Export data from Zuora API using SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
