<?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>JSON File / REST API Driver Archives | ZappySys Blog</title>
	<atom:link href="https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/feed/" rel="self" type="application/rss+xml" />
	<link>https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/</link>
	<description>SSIS / ODBC Drivers / API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more</description>
	<lastBuildDate>Thu, 16 Apr 2026 21:44:40 +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>JSON File / REST API Driver Archives | ZappySys Blog</title>
	<link>https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ODBC Tutorial: How to connect Claude to ODBC</title>
		<link>https://zappysys.com/blog/odbc-tutorial-how-to-connect-claude-to-odbc/</link>
		
		<dc:creator><![CDATA[ZappySys Team]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 21:47:31 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[ODBC PowerPack]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=11996</guid>

					<description><![CDATA[<p>Introduction Claude.IA is a powerful cloud-native intelligence and automation platform that offers REST APIs for accessing AI models, data processing pipelines, and automation workflows. In this guide, we will demonstrate how to connect to Claude using the Zappysys ODBC Driver for REST APIs with API key authentication. Whether you are using Claude for intelligent document processing, [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/odbc-tutorial-how-to-connect-claude-to-odbc/">ODBC Tutorial: How to connect Claude to ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><!-- Introduction --></p>
<h2>Introduction</h2>
<p><img loading="lazy" decoding="async" class="size-full wp-image-zappysys alignleft" src="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-ai-logo.png" alt="Cloud.IA" width="88" height="88" /></p>
<p class="intro-text">Claude.IA is a powerful cloud-native intelligence and automation platform that offers REST APIs for accessing AI models, data processing pipelines, and automation workflows. In this guide, we will demonstrate how to connect to Claude using the Zappysys ODBC Driver for REST APIs with API key authentication.</p>
<p class="intro-text">Whether you are using Claude for intelligent document processing, data enrichment, or automated workflows, you will learn how to configure ODBC connectivity without writing custom code. Zappysys ODBC REST driver handles all the complexity, allowing you to query Claude APIs using standard SQL and connect from any ODBC-compatible application.</p>
<p><!-- Prerequisites --></p>
<h2>Prerequisites</h2>
<ol>
<li>Windows operating system (32-bit or 64-bit).</li>
<li>Claude&#8217;s account has API access enabled.</li>
<li>Finally, do not forget to install ZappySys <a href="https://zappysys.com/products/ODBC-powerpack/" target="_blank" rel="noopener">ODBC PowerPack.</a></li>
</ol>
<p><!-- Steps --></p>
<h2>Steps</h2>
<h3>Generate an API Key in Claude</h3>
<ol>
<li>Log in to your<a href="https://platform.claude.com/settings/organization"> Cloude.IA account settings.</a></li>
<li>Navigate to <strong>Settings</strong> &gt; <strong>API Keys</strong>.</li>
<li>Click <strong>Create Key</strong>.</li>
<li>Enter the workspace name (optional).</li>
<li>Enter a descriptive name for the API key.</li>
<li><span style="box-sizing: border-box; margin: 0px; padding: 0px;">Press <strong>Add</strong> to generate the token Key.</span></li>
<li>Save the API key in a secure location; you won&#8217;t be able to view it again.
<div id="attachment_11988" style="width: 1812px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11988" class="size-full wp-image-11988" src="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token.png" alt="" width="1802" height="635" srcset="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token.png 1802w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token-300x106.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token-1024x361.png 1024w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token-768x271.png 768w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token-1536x541.png 1536w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-Generate-Token-1080x380.png 1080w" sizes="(max-width: 1802px) 100vw, 1802px" /></a><p id="caption-attachment-11988" class="wp-caption-text">Cloude- Generate Token</p></div></li>
<li><strong>Set Up Billing</strong> (required): add a payment method via the <a href="https://platform.claude.com/settings/billing">Billing Settings page</a>.</li>
</ol>
<h3>Creating a new ODBC DSN using ZappySys JSON Driver</h3>
<ol>
<li>Search for <strong>ODBC</strong> in the Windows Start menu and open the <strong>ODBC Data Source Administrator</strong>.<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6213" src="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png" alt="" width="394" height="542" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png 394w, https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2-218x300.png 218w" sizes="(max-width: 394px) 100vw, 394px" /></a></li>
<li>In the <strong>User DSN</strong> or <strong>System DSN</strong> tab, click <strong>Add</strong> to create a new data source.</li>
<li>In the <strong>ODBC Data Source Setup</strong> window, select the <strong>ZappySys JSON Driver</strong> and click <strong>Continue</strong>.<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5919" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png" alt="" width="593" height="504" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png 593w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver-300x255.png 300w" sizes="(max-width: 593px) 100vw, 593px" /></a></li>
</ol>
<h3> Configure the Connection and API Settings</h3>
<ol>
<li>In the <strong>Base URL</strong> field, enter:<br />
<pre class="crayon-plain-tag">https://api.anthropic.com/v1</pre>
</li>
<li>Select <strong>HTTP </strong>as the connection type, then click it to configure it.</li>
<li>Select <strong>Static Token/API Key</strong> as the <strong>Authentication Type</strong>.</li>
<li>Enter your Claude API key in the <strong>API Key</strong> field.</li>
<li>In the <strong>Header Name</strong>, enter <strong>x-api-key</strong>.</li>
<li>In the <strong>OAuth Scheme</strong>, use <strong>none.</strong></li>
<li>Click <strong>OK</strong> to save the configuration.</li>
<li>Set up the <strong>HTTP</strong> Request Method to <strong>POST.</strong></li>
<li>Use this JSON as the body:<br />
<pre class="crayon-plain-tag">{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "{YOUR-Message}"
    }
  ]
}</pre>
<div class="mceTemp"></div>
</li>
<li>In the<strong> Body content type, </strong>select  <pre class="crayon-plain-tag">JSON(application/json)</pre></li>
<li>Inside the header, add: <code><pre class="crayon-plain-tag">anthropic-version: 2023-06-01</pre></code></li>
<li>You can use the <strong>Array filter</strong> to get the object you need, and you can use <pre class="crayon-plain-tag">$.messages[*].content</pre>  to get only the message.</li>
<li>Test the connection to check everything is working fine
<div id="attachment_11995" style="width: 1275px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11995" class="size-full wp-image-11995" src="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration.png" alt="" width="1265" height="704" srcset="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration.png 1265w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration-300x167.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration-1024x570.png 1024w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-configuration-768x427.png 768w" sizes="(max-width: 1265px) 100vw, 1265px" /></a><p id="caption-attachment-11995" class="wp-caption-text">Claude &#8211; JSON ODBC Driver configuration</p></div></li>
</ol>
<h3>Preview the data</h3>
<ol>
<li>Once your ODBC DSN is configured, go to the preview tab.</li>
<li>Select the table you want to use.</li>
<li>Press the <strong>Preview data </strong>button to see the result.
<div id="attachment_12000" style="width: 814px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-result.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-12000" class="size-full wp-image-12000" src="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-result.png" alt="" width="804" height="603" srcset="https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-result.png 804w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-result-300x225.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/04/Claude-JSON-ODBC-Driver-result-768x576.png 768w" sizes="(max-width: 804px) 100vw, 804px" /></a><p id="caption-attachment-12000" class="wp-caption-text">Claude &#8211; JSON ODBC Driver result</p></div></li>
</ol>
<p><!-- Conclusion --></p>
<h2>Conclusion</h2>
<p class="intro-text">You now have a secure and reliable ODBC connection to Claude. API Key authentication provides a simple and secure way to connect using the Zappysys ODBC Driver for REST APIs. With this connection configured, you can build powerful data extraction, transformation, and integration workflows using Claude&#8217;s intelligence and automation capabilities from any ODBC-compatible application without writing custom code.</p>
<p class="intro-text">Explore the full capabilities of the <a href="https://zappysys.com/products/ODBC-powerpack/">ZappySys ODBC PowerPack</a> to optimize your data integration tasks. By applying this pattern, you can extend your solution to include additional data sources and create unified reporting across multiple cloud-based APIs.</p>
<p><!-- References --></p>
<p><!-- Need Help --></p>
<h2>Need Help?</h2>
<p class="section-intro">If you encounter any issues, our support team is here to help:</p>
<ol>
<li><strong>Live Chat</strong> — Use the chat widget (bottom-right corner of this page)</li>
<li><strong>Email</strong> — support@zappysys.com</li>
<li><strong>Support Center</strong> — Visit the ZappySys Support Portal</li>
</ol>
<p>The post <a href="https://zappysys.com/blog/odbc-tutorial-how-to-connect-claude-to-odbc/">ODBC Tutorial: How to connect Claude to ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ODBC tutorial: How to connect Blogger to ODBC</title>
		<link>https://zappysys.com/blog/odbc-tutorial-how-to-connect-blogger-to-odbc/</link>
		
		<dc:creator><![CDATA[ZappySys Team]]></dc:creator>
		<pubDate>Fri, 27 Mar 2026 12:19:14 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[ODBC PowerPack]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=11917</guid>

					<description><![CDATA[<p>Introduction This tutorial walks you through the process of extracting blog posts and comments data from Blogger using the REST API and Zappysys ODBC connectors. In this guide, you will learn how to authenticate with the Blogger REST API, configure a Zappysys ODBC data source, and query extracted data using ODBC. This approach eliminates the [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/odbc-tutorial-how-to-connect-blogger-to-odbc/">ODBC tutorial: How to connect Blogger to ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p class="intro-text"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/logo.png"><img loading="lazy" decoding="async" class=" wp-image-11901 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2026/03/logo-150x150.png" alt="Blogger Logo" width="134" height="134" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/logo-150x150.png 150w, https://zappysys.com/blog/wp-content/uploads/2026/03/logo-300x300.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/03/logo.png 512w" sizes="(max-width: 134px) 100vw, 134px" /></a>This tutorial walks you through the process of extracting blog posts and comments data from Blogger using the REST API and Zappysys ODBC connectors. In this guide, you will learn how to authenticate with the Blogger REST API, configure a Zappysys ODBC data source, and query extracted data using ODBC. This approach eliminates the need for custom code and provides a standard interface for managing complex API integrations.</p>
<p class="intro-text">Zappysys provides a powerful ODBC connector that simplifies the integration of cloud-based APIs. We will demonstrate a practical pattern using ZappySys ODBC JSON Driver to extract data from Blogger APIs through any ODBC-compatible application.</p>
<p><!-- Prerequisites --></p>
<h2>Prerequisites</h2>
<p>Before you begin, make sure you have the following:</p>
<ul>
<li>Windows operating system with ODBC Data Source Administrator available</li>
<li>Access to a Blogger blog with appropriate permissions to read public posts and comments</li>
<li>Finally, do not forget to install ZappySys <a href="https://zappysys.com/products/ODBC-powerpack/" target="_blank" rel="noopener">ODBC PowerPack.</a></li>
</ul>
<p><!-- Step-by-Step Guide --></p>
<h2>Steps</h2>
<h3>Create/Select a Project in the Google API Console</h3>
<ol>
<li>Navigate to the <a href="https://console.developers.google.com/">Google API Console</a>.</li>
<li>Click on the Project Dropdown at the top bar and either select an existing project or create a new one by clicking <strong>CREATE PROJECT</strong>.
<div id="attachment_11905" style="width: 807px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-or-select-project.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11905" class="wp-image-11905 size-full" src="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-or-select-project.png" alt="" width="797" height="255" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-or-select-project.png 797w, https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-or-select-project-300x96.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-or-select-project-768x246.png 768w" sizes="(max-width: 797px) 100vw, 797px" /></a><p id="caption-attachment-11905" class="wp-caption-text">Google Console &#8211; Create or select a project</p></div></li>
<li>Once the project is set, click <strong>ENABLE APIS AND SERVICES</strong>.</li>
<li>Search for the <strong>Blogger API v3</strong> and click <strong>ENABLE</strong>.
<div id="attachment_11903" style="width: 690px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Enable-Blogger-API.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11903" class="wp-image-11903 size-full" src="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Enable-Blogger-API.png" alt="" width="680" height="265" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Enable-Blogger-API.png 680w, https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Enable-Blogger-API-300x117.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></a><p id="caption-attachment-11903" class="wp-caption-text">Google Console &#8211; Enable Blogger API</p></div></li>
<li>Return to the main screen and click on the <strong>OAuth Consent Screen</strong> tab.</li>
<li>Select the <strong>External</strong> user type and click <strong>CREATE</strong>.</li>
<li>Provide the application name, user support email, and developer contact information, then click <strong>SAVE AND CONTINUE</strong>.</li>
<li>Click through the remaining scopes and summary pages (no additional scopes are required for this tutorial), and click <strong>SAVE AND CONTINUE</strong> on each.</li>
<li>Move to the <strong>Credentials</strong> tab.</li>
<li>Click <strong>CREATE CREDENTIALS</strong> in the top bar, choose <strong>OAuth Client ID</strong>, select <strong>Desktop App</strong> as the Application Type, and click <strong>Create</strong> to obtain your Client ID and Secret.
<div id="attachment_11904" style="width: 910px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-credentials.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11904" class="wp-image-11904 size-full" src="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-credentials.png" alt="" width="900" height="335" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-credentials.png 900w, https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-credentials-300x112.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/03/Google-Console-Create-credentials-768x286.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-11904" class="wp-caption-text">Google Console &#8211; Create credentials</p></div></li>
<li>Download the credentials JSON file and save it in a secure location on your development machine.</li>
</ol>
<h3>Creating a new ODBC DSN using ZappySys JSON Driver</h3>
<ol>
<li>Search for <strong>ODBC</strong> in the Windows Start menu and open the <strong>ODBC Data Source Administrator</strong>.<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6213" src="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png" alt="" width="394" height="542" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2.png 394w, https://zappysys.com/blog/wp-content/uploads/2019/01/how-to-open-odbc-data-source-administrator-2-218x300.png 218w" sizes="(max-width: 394px) 100vw, 394px" /></a></li>
<li>In the <strong>User DSN</strong> or <strong>System DSN</strong> tab, click <strong>Add</strong> to create a new data source.</li>
<li>In the <strong>ODBC Data Source Setup</strong> window, select the <strong>ZappySys JSON Driver</strong> and click <strong>Continue</strong>.<br />
<a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5919" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png" alt="" width="593" height="504" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver.png 593w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-dsn-admin-create-dsn-based-on-json-driver-300x255.png 300w" sizes="(max-width: 593px) 100vw, 593px" /></a></li>
</ol>
<h3>Configuring the ODBC connection for Blogger</h3>
<ol>
<li>Set the API Base URL to the Blogger API endpoint:<br />
<code>https://www.googleapis.com/blogger/v3/blogs/{{Blog_ID}}/posts</code></li>
<li>Select <strong>OAUTH </strong>as the connection type, then click it to configure it.</li>
<li>Configure the authentication and provide the <strong>Client ID and C</strong><strong>lient Secret</strong></li>
<li>Enter the Blogger <strong>Scope</strong>: <code>https://www.googleapis.com/auth/blogger</code></li>
<li>Generate the token and test the connection</li>
<li>Click OK to save the connection</li>
<li>Set the HTTP method to <strong>GET</strong>.</li>
<li>Select the object you want to use in the <strong>Array Filter</strong>.</li>
<li>Test the connection by clicking <strong>Test Connection</strong> to verify your credentials and API access.</li>
<li>Save the configuration and name your ODBC DSN (e.g., &#8220;BloggerAPI&#8221;).
<div id="attachment_11924" style="width: 1215px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11924" class="size-full wp-image-11924" src="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection.png" alt="" width="1205" height="704" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection.png 1205w, https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection-300x175.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection-1024x598.png 1024w, https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-connection-768x449.png 768w" sizes="(max-width: 1205px) 100vw, 1205px" /></a><p id="caption-attachment-11924" class="wp-caption-text">ODBC JSON driver &#8211; Blogger connection</p></div></li>
</ol>
<h3>Preview the data</h3>
<ol>
<li>Once your ODBC DSN is configured, go to the preview tab.</li>
<li>Select the table you want to use.</li>
<li>Press the <strong>Preview data </strong>button to see the result.
<div id="attachment_11926" style="width: 814px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-final-result.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11926" class="size-full wp-image-11926" src="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-final-result.png" alt="" width="804" height="704" srcset="https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-final-result.png 804w, https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-final-result-300x263.png 300w, https://zappysys.com/blog/wp-content/uploads/2026/03/ODBC-JSON-driver-Blogger-final-result-768x672.png 768w" sizes="(max-width: 804px) 100vw, 804px" /></a><p id="caption-attachment-11926" class="wp-caption-text">ODBC JSON driver &#8211; Blogger final result</p></div></li>
</ol>
<p><!-- Conclusion --></p>
<h2>Conclusion</h2>
<p class="intro-text">You have successfully learned how to use Zappysys ODBC connectors to extract data from the Blogger<br />
platform using the REST API. With ZappySys ODBC PowerPack, connecting Blogger to any ODBC-compatible application becomes<br />
straightforward and reliable. By configuring the JSON ODBC driver for Blogger, you can access blog data from Excel, Power BI, Tableau, and other business intelligence tools.</p>
<p class="intro-text">Explore the full capabilities of the <a href="https://zappysys.com/products/ODBC-powerpack/">ZappySys ODBC PowerPack</a> to optimize your data integration<br />
tasks. By applying this pattern, you can extend your solution to include additional data sources and create unified reporting across multiple cloud-based APIs.</p>
<p><!-- References --></p>
<p><!-- Need Help --></p>
<h2>Need Help?</h2>
<p class="section-intro">If you encounter any issues, our support team is here to help:</p>
<ol>
<li><strong>Live Chat</strong> — Use the chat widget (bottom-right corner of this page)</li>
<li><strong>Email</strong> — support@zappysys.com</li>
<li><strong>Support Center</strong> — Visit the ZappySys Support Portal</li>
</ol>
<p>The post <a href="https://zappysys.com/blog/odbc-tutorial-how-to-connect-blogger-to-odbc/">ODBC tutorial: How to connect Blogger to ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Call ChatGPT REST API in SSIS</title>
		<link>https://zappysys.com/blog/accessing-chatgpt-via-rest-api/</link>
		
		<dc:creator><![CDATA[ZappySys Team]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 12:07:27 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[opanapi]]></category>
		<category><![CDATA[restpai]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=10234</guid>

					<description><![CDATA[<p>Introduction OpenAI, the creators of ChatGPT, provide both a web interface and an API for seamless integration of their tools into applications. This article provides a comprehensive guide on how to establish a connection with the OpenAI API in SSIS using ZappySys JSON Source, enabling seamless data integration and retrieval. Prerequisites Before we perform steps [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/accessing-chatgpt-via-rest-api/">Call ChatGPT REST API in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong>Introduction</strong></h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2023/10/chatgpt-logo.png"><img loading="lazy" decoding="async" class="wp-image-11035 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2023/10/chatgpt-logo.png" alt="" width="137" height="137" srcset="https://zappysys.com/blog/wp-content/uploads/2023/10/chatgpt-logo.png 384w, https://zappysys.com/blog/wp-content/uploads/2023/10/chatgpt-logo-300x300.png 300w, https://zappysys.com/blog/wp-content/uploads/2023/10/chatgpt-logo-150x150.png 150w" sizes="(max-width: 137px) 100vw, 137px" /></a>OpenAI, the creators of <a href="https://chat.openai.com/">ChatGPT</a>, provide both a web interface and an API for seamless integration of their tools into applications. This article provides a comprehensive guide on how to establish a connection with the OpenAI API in SSIS using ZappySys <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON Source</a>, enabling seamless data integration and retrieval.</p>
<h2><strong>Prerequisites</strong></h2>
<p>Before we perform steps listed in this article, you will need to make sure following prerequisites are met:</p>
<ol>
<li>SSIS designer installed. Sometimes it is referred as BIDS or SSDT (<a href="https://learn.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver16" target="_blank" rel="noopener">download it from Microsoft site</a>).</li>
<li>Basic knowledge of SSIS package development using Microsoft SQL Server Integration Services.</li>
<li>Make sure <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>).</li>
<li>Optional (If you want to Deploy and Schedule ) &#8211; <a href="https://zappysys.zendesk.com/hc/en-us/articles/360035974593" target="_blank" rel="noopener">Deploy and Schedule SSIS Packages</a></li>
</ol>
<h2>Step-by-step guide to making a ChatGPT Rest API call</h2>
<h3>How to get an OpenAI API Key for ChatGPT</h3>
<p>First, obtain your API key from OpenAI. This key is required for authenticating your requests.</p>
<p>To access the services, you will be required to set up an account with OpenAI. <a href="https://platform.openai.com/signup" target="_blank" rel="noopener">Click here to create your account</a>. Once your account has been successfully created, proceed to log in to your OpenAI account.</p>
<p>You can find the API key by following these steps:</p>
<ol>
<li>Navigate to the top right corner of the screen.</li>
<li>Click on your account name.</li>
<li>From the drop-down menu, select &#8220;API Keys.&#8221;</li>
<li>Alternatively, you can directly access the API Keys section by <a href="https://platform.openai.com/account/api-keys" target="_blank" rel="noopener">clicking here</a>.</li>
</ol>
<p>To generate a new secret key, please follow these steps:</p>
<ol>
<li>Go to the API Keys page.</li>
<li>Look for the &#8220;Create new secret key&#8221; button.</li>
<li>Click the button to generate a new secret key.</li>
</ol>
<div id="attachment_10236" style="width: 998px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10236" class=" wp-image-10236" src="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2.png" alt="" width="988" height="505" srcset="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2.png 1429w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2-300x153.png 300w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2-768x392.png 768w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa2-1024x523.png 1024w" sizes="(max-width: 988px) 100vw, 988px" /></a><p id="caption-attachment-10236" class="wp-caption-text">Generate a new key</p></div>
<p>Upon generation, your API key will be visible on the screen. It&#8217;s crucial to copy the key and store it in a secure location immediately, <strong>as it will not be displayed again for security purposes.</strong></p>
<div id="attachment_10237" style="width: 1000px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10237" class=" wp-image-10237" src="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1.png" alt="" width="990" height="486" srcset="https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1.png 1413w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1-300x147.png 300w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1-768x377.png 768w, https://zappysys.com/blog/wp-content/uploads/2023/08/OpenIa1-1024x503.png 1024w" sizes="(max-width: 990px) 100vw, 990px" /></a><p id="caption-attachment-10237" class="wp-caption-text">The new key</p></div>
<p>Now that you have your API key, you can begin utilizing it to make calls with your components. A preliminary example involves retrieving a list of all available models in OpenAI. For detailed instructions, please refer to the <a href="https://platform.openai.com/docs/api-reference/introduction" target="_blank" rel="noopener">API documentation available here</a>.</p>
<h3>ChatGPT Rest API call using JSON Source</h3>
<p>1. Drag and Drop the SSIS <b>Data Flow Task</b> from the SSIS Toolbox.</p>
<div style="width: 470px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" width="460" height="155" /><p class="wp-caption-text">Drag and drop Data flow task</p></div>
<p>2. Double-click on the DataFlow task to see the DataFlow designer surface.</p>
<p>3. From the SSIS toolbox drag and drop ZS JSON Source on the dataflow designer surface.</p>
<div style="width: 551px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png" width="541" height="144" /><p class="wp-caption-text">Drag and drop a JSON source</p></div>
<p>4. We will use this on the URL path:</p><pre class="crayon-plain-tag">https://api.openai.com/v1/models</pre><p>
5. In the HTTP headers grid add the following values by clicking Raw Edit button :</p>
<p><code class="language-bash"><span class=""><span class="hljs-string">Authorization: Bearer </span><span class="hljs-string hljs-variable">YOUR_OPENAI_API_KEY<br />
</span></span></code><span style="background-color: #f0f0f0; color: #1e1e1e; font-family: Menlo, Consolas, monaco, monospace; font-size: 14px;">OpenAI-Organization: org-YQ9qpxxxxxxxxxxxxgoPi</span></p>
<p>6. Select your preferred Array Filter, simply click the &#8220;Select Filter&#8221; button. for this API call we need to select the <pre class="crayon-plain-tag">$.data[*]</pre>  array filter</p>
<p>7. Final step: Click &#8216;Preview&#8217; to initiate the ChatGTP Rest API call. You will also find a demonstration within our component, along with the resulting output from the call, below.</p>
<div id="attachment_10238" style="width: 838px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2023/08/JSON1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10238" class="size-full wp-image-10238" src="https://zappysys.com/blog/wp-content/uploads/2023/08/JSON1.png" alt="" width="828" height="735" srcset="https://zappysys.com/blog/wp-content/uploads/2023/08/JSON1.png 828w, https://zappysys.com/blog/wp-content/uploads/2023/08/JSON1-300x266.png 300w, https://zappysys.com/blog/wp-content/uploads/2023/08/JSON1-768x682.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><p id="caption-attachment-10238" class="wp-caption-text">ChatGPT call</p></div>
<p>That&#8217;s it the configuration for the ChatGPT Rest API call has been completed successfully.</p>
<h2>Load ChatGPT data in SQL Server using Upsert Destination (Insert or Update)</h2>
<div class="content_block" id="custom_post_widget-5617"><p>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 <strong>Upsert Destination</strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.</p>
<h3>Step 1: Add Upsert Destination to Data Flow</h3>
<ol>
<li>Drag and drop the <strong>Upsert Destination</strong> component from the SSIS Toolbox.</li>
<li>Connect your source component (e.g., JSON / REST / Other Source) to the Upsert Destination.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png" /></a>
<p class="wp-caption-text">SSIS - Data Flow - Drang and Drop Upsert Destination Component</p>
</div>
<h3>Step 2: Configure Target Connection</h3>
<ol>
<li>Double-click the <strong>Upsert Destination</strong> component to open the configuration window.</li>
<li>Under <strong>Connection</strong>, select an existing target connection or click <strong>NEW</strong> to create a new connection.
<ul>
<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.</li>
</ul>
</li>
</ol>
<h3>Step 3: Select or Create Target Table</h3>
<ol>
<li>In the <strong>Target Table</strong> dropdown, select the table where you want to load data.</li>
<li>Optionally, click <strong>NEW</strong> to create a new table based on the source columns.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png" /></a>
<p class="wp-caption-text">Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS</p>
</div>
<h3>Step 4: Map Columns</h3>
<ol>
<li>Go to the <strong>Mappings</strong> tab.</li>
<li>Click <strong>Auto Map</strong> to map source columns to target columns by name.</li>
<li>Ensure you <strong>check the Primary key column(s)</strong> that will determine whether a record is inserted or updated.</li>
<li>You can manually adjust the mappings if necessary.</li>
</ol>
 <div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination - Columns Mappings</p>
</div>
<h3>Step 5: Save Settings</h3>
<ul>
<li>Click <strong>OK</strong> to save the Upsert Destination configuration.</li>
</ul>
<h3>Step 6: Optional: Add Logging or Analysis</h3>
<ul>
<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.</li>
</ul>
<h3>Step 7: Execute the Package</h3>
<ul>
<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.</li>
</ul>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination Execution</p>
</div></div>
<h2>Conclusion</h2>
<p>In this article, we explored the seamless process of establishing a connection with <strong>ChatGPT</strong> <strong>in SSIS</strong> and integrating data effortlessly, all without the need for coding. Interested in trying it out yourself? Feel free to <a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">Download ZappySys SSIS PowerPack</a> by clicking here and experience the simplicity firsthand. Should you have any lingering queries, please don&#8217;t hesitate to ask by <a href="https://zappysys.com/support/" target="_blank" rel="noopener">clicking here</a> or initiating a conversation with our experts via the live chat icon at the bottom-right corner of this page.</p>
<p>The post <a href="https://zappysys.com/blog/accessing-chatgpt-via-rest-api/">Call ChatGPT REST API in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Download Gmail Attachment in SSIS</title>
		<link>https://zappysys.com/blog/download-gmail-attachment-in-ssis/</link>
		
		<dc:creator><![CDATA[ZappySys Team]]></dc:creator>
		<pubDate>Wed, 30 Dec 2020 18:29:57 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[attachment]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[varbinary]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=9207</guid>

					<description><![CDATA[<p>Introduction Downloading Gmail Attachments in SSIS is always a little more difficult than working with simple text or numeric columns. If you are not an SSIS expert, doing it for the first time may be challenging. That is why we created this article for you. This is a common request we receive, so we are [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/download-gmail-attachment-in-ssis/">Download Gmail Attachment in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<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;"><strong>UPDATE:</strong> ZappySys has released a brand new <a href="https://zappysys.com/api/integration-hub/gmail-connector/ssis" target="_blank" rel="noopener">Gmail Connector for SSIS</a>, which makes it much simpler to <strong>download attachments, read / search Emails, users, mail folders, send emails, and more in SSIS</strong> compared to the steps listed in this article. You can still use the steps from this article, but if you are new to APIs or want to avoid the learning curve, use a newer approach.</div></div>
<p>Downloading Gmail Attachments in SSIS is always a little more difficult than working with simple text or numeric columns. If you are not an SSIS expert, doing it for the first time may be challenging. That is why we created this article for you. This is a common request we receive, so we are bringing this article to you.</p>
<p>Gmail is the most popular email service in the world, and it can be helpful to automate and get valuable information from it. We will connect to Gmail with the REST API. For that, if you are not an experienced user of the REST API, do not worry. This article is for you. We will provide simple steps for the connection.</p>
<h2>Requirements</h2>
<p>To do it, we will need the following components:</p>
<ol>
<li><a href="https://docs.microsoft.com/en-us/sql/ssdt/previous-releases-of-sql-server-data-tools-ssdt-and-ssdt-bi?view=sql-server-ver15">SSDT for SSIS</a> must be installed on your computer</li>
<li><a href="https://zappysys.com/products/ssis-powerpack/download/">ZappySys SSIS Powerpack</a> should be installed. This Powerpack Plugin includes connectors to Gmail via the REST API.</li>
</ol>
<p>&nbsp;</p>
<h2>Getting Started</h2>
<h3>Creating the connection</h3>
<ol>
<li>First of all, in SSDT, create a new SSIS project</li>
<li>To create a connection in SSDT, open the Connection Manager and select New Connection.
<div id="attachment_11671" style="width: 732px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Create-a-new-connection.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11671" class="wp-image-11671 size-full" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Create-a-new-connection.png" alt="Create a new connection" width="722" height="229" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Create-a-new-connection.png 722w, https://zappysys.com/blog/wp-content/uploads/2020/12/Create-a-new-connection-300x95.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/Create-a-new-connection-720x229.png 720w" sizes="(max-width: 722px) 100vw, 722px" /></a><p id="caption-attachment-11671" class="wp-caption-text">Create a new connection</p></div></li>
<li>Select the ZS OAuth connection. This is a special connection included with the <a href="https://zappysys.com/products/ssis-powerpack/download/">ZS.<br />
SSIS PowerPack</a> installer that we will use to connect to Gmail.</p>
<div id="attachment_11676" style="width: 488px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Select-ZS-OAuth-connector.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11676" class="wp-image-11676 size-full" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Select-ZS-OAuth-connector.png" alt="Select ZS-OAuth connector" width="478" height="447" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Select-ZS-OAuth-connector.png 478w, https://zappysys.com/blog/wp-content/uploads/2020/12/Select-ZS-OAuth-connector-300x281.png 300w" sizes="(max-width: 478px) 100vw, 478px" /></a><p id="caption-attachment-11676" class="wp-caption-text">Select ZS-OAuth connector</p></div>
<div class="mceTemp"></div>
</li>
<li>In the ZS OAuth connection, select the Google API OAuth Provider and specify the following credentials and scope permissions:
<div id="attachment_11677" style="width: 713px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/SSIS-Gmail-connection-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11677" class="size-full wp-image-11677" src="https://zappysys.com/blog/wp-content/uploads/2020/12/SSIS-Gmail-connection-1.png" alt="SSIS Gmail connection" width="703" height="674" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/SSIS-Gmail-connection-1.png 703w, https://zappysys.com/blog/wp-content/uploads/2020/12/SSIS-Gmail-connection-1-300x288.png 300w" sizes="(max-width: 703px) 100vw, 703px" /></a><p id="caption-attachment-11677" class="wp-caption-text">SSIS Gmail connection</p></div>
<pre class="crayon-plain-tag">https://mail.google.com/
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.addons.current.message.readonly
https://www.googleapis.com/auth/gmail.addons.current.message.action</pre>
</li>
</ol>
<h3>Creating the package to download Gmail attachments in SSIS</h3>
<ol>
<li>First of all, drag and drop the Data Flow Task from the SSIS Toolbox and double-click it<br />
to edit.</p>
<div id="attachment_11622" style="width: 472px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/08/Drag-and-Drop-SSIS-Data-Flow-Task-from-SSIS-Toolbox.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11622" class="wp-image-11622 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/08/Drag-and-Drop-SSIS-Data-Flow-Task-from-SSIS-Toolbox.png" alt="" width="462" height="157" srcset="https://zappysys.com/blog/wp-content/uploads/2019/08/Drag-and-Drop-SSIS-Data-Flow-Task-from-SSIS-Toolbox.png 462w, https://zappysys.com/blog/wp-content/uploads/2019/08/Drag-and-Drop-SSIS-Data-Flow-Task-from-SSIS-Toolbox-300x102.png 300w" sizes="(max-width: 462px) 100vw, 462px" /></a><p id="caption-attachment-11622" class="wp-caption-text">Drag and Drop SSIS Data Flow Task from SSIS Toolbox</p></div></li>
<li>Secondly, in the Data Flow, we will use the JSON Source to connect to Gmail and get the attachments. JSON Source is a ZappySys component used now only to connect to JSON files, but also to connect to REST API Servers that support JSON. In this case, Gmail REST API can send information in JSON Format. Use the connection created before.</li>
<li>Basically, we need to specify the URL of the Gmail attachment. In Gmail, the email attachment is inside the message. Then you need to specify the <em>message-id</em> and the Gmail <em>attachment-id</em> like this:
<div id="attachment_11678" style="width: 838px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Zappysys-JSON-source-Gmail-attachments-configuration.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11678" class="size-full wp-image-11678" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Zappysys-JSON-source-Gmail-attachments-configuration.png" alt="Zappysys JSON source Gmail attachments configuration" width="828" height="717" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Zappysys-JSON-source-Gmail-attachments-configuration.png 828w, https://zappysys.com/blog/wp-content/uploads/2020/12/Zappysys-JSON-source-Gmail-attachments-configuration-300x260.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/Zappysys-JSON-source-Gmail-attachments-configuration-768x665.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><p id="caption-attachment-11678" class="wp-caption-text">Zappysys JSON source Gmail attachments configuration</p></div>
<pre class="crayon-plain-tag">https://www.googleapis.com/gmail/v1/users/me/messages/{{User::email_id}}/attachments/{{User::attachment_id}}</pre>
</li>
<li>Now, in the go-to columns tab, set the data type to DT_IMAGE and increase the length of the other columns&#8217; DT_WSTR fields by 1000 and 1500. We set <pre class="crayon-plain-tag">contentBytes</pre> to the <pre class="crayon-plain-tag">DT_IMAGE</pre>  datatype, it&#8217;s like <pre class="crayon-plain-tag">varbinary(MAX)</pre>
<div id="attachment_11675" style="width: 836px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/JSON-Source-Columns-Tab-attachment-datatype.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11675" class="size-full wp-image-11675" src="https://zappysys.com/blog/wp-content/uploads/2020/12/JSON-Source-Columns-Tab-attachment-datatype.png" alt="JSON Source Columns Tab - attachment datatype" width="826" height="331" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/JSON-Source-Columns-Tab-attachment-datatype.png 826w, https://zappysys.com/blog/wp-content/uploads/2020/12/JSON-Source-Columns-Tab-attachment-datatype-300x120.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/JSON-Source-Columns-Tab-attachment-datatype-768x308.png 768w" sizes="(max-width: 826px) 100vw, 826px" /></a><p id="caption-attachment-11675" class="wp-caption-text">JSON Source Columns Tab &#8211; attachment datatype</p></div></li>
<li>Next, we will use the derived column to set the path to the local folder where the attachment will be stored. The derived column will be used to set the local path for the attachment. Make sure to specify valid paths with double backslashes, since backslashes are special characters. The derived column is a special transformation component that creates new columns. <a href="https://docs.microsoft.com/en-us/sql/integration-services/expressions/integration-services-ssis-expressions?view=sql-server-ver15">SSIS expressions</a>.
<div id="attachment_11672" style="width: 798px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Derived-columns-Gmail-attachment.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11672" class="size-full wp-image-11672" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Derived-columns-Gmail-attachment.png" alt="Derived columns - Gmail attachment" width="788" height="624" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Derived-columns-Gmail-attachment.png 788w, https://zappysys.com/blog/wp-content/uploads/2020/12/Derived-columns-Gmail-attachment-300x238.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/Derived-columns-Gmail-attachment-768x608.png 768w" sizes="(max-width: 788px) 100vw, 788px" /></a><p id="caption-attachment-11672" class="wp-caption-text">Derived columns &#8211; Gmail attachment file path</p></div></li>
<li>Also, we will require the Export column to download into a file. This component is specially used to get images or binary files into the file system.
<div id="attachment_11673" style="width: 763px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Export-columns-transformation-Gmail-attachment.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11673" class="size-full wp-image-11673" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Export-columns-transformation-Gmail-attachment.png" alt="Export columns transformation - Gmail attachment" width="753" height="637" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Export-columns-transformation-Gmail-attachment.png 753w, https://zappysys.com/blog/wp-content/uploads/2020/12/Export-columns-transformation-Gmail-attachment-300x254.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></a><p id="caption-attachment-11673" class="wp-caption-text">Export columns transformation &#8211; Gmail attachment</p></div></li>
<li>Finally, we will use the <a href="https://zappysys.com/blog/ssis-trash-destination-dummy-data-source-example/">Trash destination</a> to get the attachment and finish the flow. This one is also a ZappySys component ubiquitous.</li>
<li>Your package should be something like this:
<div id="attachment_11674" style="width: 306px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/Final-Result-Gmail-attachment.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11674" class="size-full wp-image-11674" src="https://zappysys.com/blog/wp-content/uploads/2020/12/Final-Result-Gmail-attachment.png" alt="Final Result - Gmail attachment" width="296" height="320" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/Final-Result-Gmail-attachment.png 296w, https://zappysys.com/blog/wp-content/uploads/2020/12/Final-Result-Gmail-attachment-278x300.png 278w" sizes="(max-width: 296px) 100vw, 296px" /></a><p id="caption-attachment-11674" class="wp-caption-text">Final Result &#8211; Gmail attachment</p></div></li>
<li>The next step is to run it and test it.</li>
<li>If everything is fine, we will be able to see the file in your system.</li>
</ol>
<h2>Conclusion</h2>
<p>In conclusion, we learned how to download Gmail attachments in SSIS. Basically, you need to use the ZappySys JSON Source to connect to Gmail via the REST API, then use the derived column component to specify the path to store the attachment. The next step is to use the Export column component to export the attachment. Finally, the ZS Trash destination is the attachment&#8217;s destination. If you liked this article, do not hesitate to continue testing and using <a href="https://zappysys.com/">ZappySys PowerPack for SSIS.</a></p>
<h2>API Connector</h2>
<p>Here are a few examples with our <a href="https://zappysys.com/api/integration-hub/gmail-connector/ssis">API connector for Gmail </a></p>
<div id="attachment_11670" style="width: 992px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-get-message-attachments.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11670" class="size-full wp-image-11670" src="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-get-message-attachments.png" alt="API connector - Gmail get message attachments" width="982" height="684" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-get-message-attachments.png 982w, https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-get-message-attachments-300x209.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-get-message-attachments-768x535.png 768w" sizes="(max-width: 982px) 100vw, 982px" /></a><p id="caption-attachment-11670" class="wp-caption-text">API connector &#8211; Gmail get message attachments</p></div>
<div id="attachment_11669" style="width: 992px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-download-message-attachments.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11669" class="size-full wp-image-11669" src="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-download-message-attachments.png" alt="API connector - Gmail download message attachments" width="982" height="684" srcset="https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-download-message-attachments.png 982w, https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-download-message-attachments-300x209.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/12/API-connector-Gmail-download-message-attachments-768x535.png 768w" sizes="(max-width: 982px) 100vw, 982px" /></a><p id="caption-attachment-11669" class="wp-caption-text">API connector &#8211; Gmail download message attachments</p></div>
<p>&nbsp;</p>
<p>The post <a href="https://zappysys.com/blog/download-gmail-attachment-in-ssis/">Download Gmail Attachment in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Get data from Google Search Console API in SSIS and ODBC Apps</title>
		<link>https://zappysys.com/blog/get-data-google-search-console-api-ssis-odbc-drivers/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 09 Oct 2019 20:22:28 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[ODBC Gateway]]></category>
		<category><![CDATA[ODBC PowerPack]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS REST API Task]]></category>
		<category><![CDATA[google api]]></category>
		<category><![CDATA[oauth]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=8128</guid>

					<description><![CDATA[<p>Introduction In our previous few posts we saw how to call various google apis in SSIS.  In this post lets learn how to call Google Search Console API in SSIS or other ODBC Compatible Apps such as Power BI, Informatica, SSRS using API Drivers for ODBC About Google Search Console API (Google Webmaster API) If [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/get-data-google-search-console-api-ssis-odbc-drivers/">Get data from Google Search Console API in SSIS and ODBC Apps</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In our previous few posts we saw how to call various <a href="https://zappysys.com/blog/category/google-api/" target="_blank" rel="noopener">google apis</a> in SSIS.  In this post lets learn how to call Google Search Console API in SSIS or other ODBC Compatible Apps such as Power BI, Informatica, SSRS using <a href="https://zappysys.com/products/odbc-powerpack/">API Drivers for ODBC</a></p>
<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>About Google Search Console API (Google Webmaster API)</h2>
<p>If you are new to Google Search Console API (i.e. Webmaster API) then start <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/prereqs" target="_blank" rel="noopener">from this link</a>. You can also <a href="https://developers.google.com/apis-explorer/#p/webmasters/v3/" target="_blank" rel="noopener">check API Explorer</a> here to test API requests.</p>
<p>Search API can be called by supplying either <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/authorizing#APIKey" target="_blank" rel="noopener">API key</a> in URL  or <a href="https://zappysys.com/blog/register-google-oauth-application-get-clientid-clientsecret/">use OAuth</a></p>
<p>Search Console V3 Covers following APIs (May add more in future)</p>
<div class="su-table su-table-alternate">
<table class="NYYWNC-h-b">
<tbody>
<tr>
<td><strong><span class="gwt-InlineLabel">API Name</span></strong></td>
<td><strong><span class="gwt-InlineLabel">Description</span></strong></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.searchanalytics.query</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Query your data with filters and parameters that you define. Returns zero or more rows grouped by the row keys that you define. You must define a date range of one or more days. When date is one of the group by values, any days without data are omitted from the result list. If you need to know which days have data, issue a broad date range query grouped by date for any metric, and see which day rows are returned.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sitemaps.delete</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Deletes a sitemap from this site.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sitemaps.get</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Retrieves information about a specific sitemap.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sitemaps.list</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Lists the sitemaps-entries submitted for this site, or included in the sitemap index file (if sitemapIndex is specified in the request).</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sitemaps.submit</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Submits a sitemap for a site.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sites.add</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Adds a site to the set of the user&#8217;s sites in Search Console.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sites.delete</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Removes a site from the set of the user&#8217;s Search Console sites.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sites.get</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Retrieves information about specific site.</span></td>
</tr>
<tr>
<td class="NYYWNC-h-c"><span class="gwt-InlineLabel">webmasters.sites.list</span></td>
<td class="NYYWNC-h-a"><span class="gwt-InlineLabel">Lists the user&#8217;s Search Console sites.</span></td>
</tr>
</tbody>
</table>
</div>
<p><strong>Search Console API Call Example</strong></p>
<p>Here is simple example of Search Console API call. Below example returns all sites you added under your search console account.</p>
<p><strong>Request</strong></p><pre class="crayon-plain-tag">GET https://www.googleapis.com/webmasters/v3/sites?key={YOUR_API_KEY}</pre><p>
<strong>Response</strong></p><pre class="crayon-plain-tag">{
 "siteEntry": [
  {
   "siteUrl": "https://my-google-search-api-1.com/",
   "permissionLevel": "siteOwner"
  },
  {
   "siteUrl": "https://www.my-google-search-api-1.com/",
   "permissionLevel": "siteOwner"
  },
  {
   "siteUrl": "https://my-google-search-api-2.com/",
   "permissionLevel": "siteOwner"
  },
  {
   "siteUrl": "https://www.my-google-search-api-2.com/",
   "permissionLevel": "siteOwner"
  }
 ]
}</pre><p>
&nbsp;</p>
<h2>Step-By-Step &#8211; Call Search Console API in SSIS</h2>
<p>Now lets look at very simple API call to <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/sites/list" target="_blank" rel="noopener">list search console sites</a></p>
<ol>
<li>Open SSIS Package</li>
<li>Drag and drop ZS REST API Task from SSIS tool box
<div style="width: 565px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/rest-api-task/ssis-rest-api-web-service-task-drag.png" alt="Drag and Drop ZS REST API Task from SSIS Toolbox" width="555" height="199" /><p class="wp-caption-text">Drag and Drop ZS REST API Task from SSIS Toolbox</p></div></li>
<li>Now double click REST API Task and configure (Skip <strong>Step 5</strong> if you use <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/authorizing#APIKey" target="_blank" rel="noopener">API Key</a> instead of OAuth).</li>
<li>Enter API URL you like to call. For This example we will use simple URL as below<br />
<strong>OAuth based Authentication</strong><br />
<pre class="crayon-plain-tag">https://www.googleapis.com/webmasters/v3/sites/</pre>
<strong>API Key based Authentication</strong><br />
<pre class="crayon-plain-tag">https://www.googleapis.com/webmasters/v3/sites/?key={YOUR_API_KEY}</pre>
</li>
<li>If you want to use OAuth based credentials then perform the following steps
<ol>
<li>Select <strong>URL from Connection </strong></li>
<li>Click <strong>New ZS-OAUTH</strong> connection from Dropdown</li>
<li>On the OAuth UI select <strong>Google as Provider</strong></li>
<li>Enter Scopes as below<br />
<pre class="crayon-plain-tag">https://www.googleapis.com/auth/webmasters
https://www.googleapis.com/auth/webmasters.readonly</pre>
</li>
<li>Click Generate Token. When you get Login Prompt enter your Google Account information and <strong>click Accept</strong></li>
<li>Click OK to Save OAuth UI</li>
</ol>
</li>
<li>This is how it will look like if you use OAuth Connection
<div id="attachment_8131" style="width: 1037px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8131" class="size-full wp-image-8131" src="https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task.png" alt="Call Google Search Console API using SSIS REST API Task (OAuth Authentication)" width="1027" height="869" srcset="https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task.png 1027w, https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task-300x254.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task-768x650.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/10/call-google-search-api-using-oauth-ssis-rest-api-task-1024x866.png 1024w" sizes="(max-width: 1027px) 100vw, 1027px" /></a><p id="caption-attachment-8131" class="wp-caption-text">Call Google Search Console API using SSIS REST API Task (OAuth Authentication)</p></div></li>
<li>Now click Test Request / Response to check if its working. You should get response like below</li>
</ol>
<p>&nbsp;</p>
<h2>Read from Search Console Analytics API (query)</h2>
<p>Now let&#8217;s look at how to <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query" target="_blank" rel="noopener">call Search Console Analytics API (i.e. query)</a> for Specified Site and extract data in tabular format using <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">ZS JSON Source</a>. In below example we will obtain search Impression, clicks, position etc for specified site. We will aggregate this over date and country (dimensions).</p>
<p>In this section you will learn how to use JSON Source Adapter to extract data from JSON file (In this case its Web URL).</p>
<ol>
<li>Firstly, You need to <b>Download and Install</b> SSIS <a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">ZappySys PowerPack.</a></li>
<li>Once you finished first step, Open Visual Studio and Create New SSIS Package Project.</li>
<li>Now, Drag and Drop SSIS <b>Data Flow Task</b> from SSIS Toolbox.<br />
<img decoding="async" class="figureimage" title="SSIS Data Flow Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" alt="SSIS Data Flow Task - Drag and Drop" /></li>
<li>Double click on the Data Flow task to see Data Flow designer surface.</li>
<li>From the SSIS toolbox drag and drop JSON Source on the Data Flow designer surface.<br />
<img decoding="async" class="figureimage" title="SSIS JSON Source - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png" alt="SSIS JSON Source - Drag and Drop" /></li>
<li>Double click JSON Source and configure like below
<ol>
<li>Enter URL as below. Notice two things, first we used <strong>&lt;&lt;somedata,FUN_URLENC&gt;&gt;</strong> <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-format-specifiers.htm" target="_blank" rel="noopener">placeholder function</a> to encode <strong>:</strong> and <strong>//</strong> in the URL so it <a href="https://zappysys.zendesk.com/hc/en-us/articles/360012261713">become %2F %3A</a>. We use <pre class="crayon-plain-tag">--dont-escape--</pre>  suffix at the end.<br />
<strong>For OAuth based Credentials</strong><br />
<pre class="crayon-plain-tag">https://www.googleapis.com/webmasters/v3/sites/&lt;&lt;https://mysite.com,FUN_URLENC&gt;&gt;/searchAnalytics/query--dont-escape--</pre>
<strong>For API Key based Credentials</strong><br />
<pre class="crayon-plain-tag">https://www.googleapis.com/webmasters/v3/sites/&lt;&lt;https://mysite.com,FUN_URLENC&gt;&gt;/searchAnalytics/query/?key={YOUR_API_KEY}--dont-escape--</pre>
</li>
<li>Check Use Credentials and select OAuth connection (created earlier) (if you are using API key in URL then skip this step).</li>
<li>Select <strong>POST</strong> as HTTP Method</li>
<li>Enter Body for Query. Here are <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/search_analytics" target="_blank" rel="noopener">some examples</a> for various queries you can use. For our case we want to group by date and country so use below<br />
<pre class="crayon-plain-tag">{
"startDate": "2019-01-01",
"endDate": "2019-01-10",
"dimensions" : ["date","country"]
}</pre>
</li>
<li>Select <strong>Content Type</strong> as <pre class="crayon-plain-tag">application/json</pre>  from Content Type drop down.</li>
<li>Select Filter or enter as  <pre class="crayon-plain-tag">$.rows[*]</pre></li>
<li>Now go to Extract Multiple Arrays Tab and <strong>Check Array Flattening Option</strong> (on older version it was on the different Tab)</li>
</ol>
</li>
<li>Click Preview and you will see your Google Search Console API data as below.
<div id="attachment_8138" style="width: 914px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/10/read-google-search-console-api-example.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8138" class="size-full wp-image-8138" src="https://zappysys.com/blog/wp-content/uploads/2019/10/read-google-search-console-api-example.png" alt="Read from Google Search API Console (Analytics Query Endpoint) - JSON Source" width="904" height="827" srcset="https://zappysys.com/blog/wp-content/uploads/2019/10/read-google-search-console-api-example.png 904w, https://zappysys.com/blog/wp-content/uploads/2019/10/read-google-search-console-api-example-300x274.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/10/read-google-search-console-api-example-768x703.png 768w" sizes="(max-width: 904px) 100vw, 904px" /></a><p id="caption-attachment-8138" class="wp-caption-text">Read from Google Search API Console (Analytics Query Endpoint) &#8211; JSON Source</p></div></li>
</ol>
<h2>Loading Google Search Console API data into SQL Server / Other Target</h2>
<div class="content_block" id="custom_post_widget-5617"><p>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 <strong>Upsert Destination</strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.</p>
<h3>Step 1: Add Upsert Destination to Data Flow</h3>
<ol>
<li>Drag and drop the <strong>Upsert Destination</strong> component from the SSIS Toolbox.</li>
<li>Connect your source component (e.g., JSON / REST / Other Source) to the Upsert Destination.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png" /></a>
<p class="wp-caption-text">SSIS - Data Flow - Drang and Drop Upsert Destination Component</p>
</div>
<h3>Step 2: Configure Target Connection</h3>
<ol>
<li>Double-click the <strong>Upsert Destination</strong> component to open the configuration window.</li>
<li>Under <strong>Connection</strong>, select an existing target connection or click <strong>NEW</strong> to create a new connection.
<ul>
<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.</li>
</ul>
</li>
</ol>
<h3>Step 3: Select or Create Target Table</h3>
<ol>
<li>In the <strong>Target Table</strong> dropdown, select the table where you want to load data.</li>
<li>Optionally, click <strong>NEW</strong> to create a new table based on the source columns.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png" /></a>
<p class="wp-caption-text">Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS</p>
</div>
<h3>Step 4: Map Columns</h3>
<ol>
<li>Go to the <strong>Mappings</strong> tab.</li>
<li>Click <strong>Auto Map</strong> to map source columns to target columns by name.</li>
<li>Ensure you <strong>check the Primary key column(s)</strong> that will determine whether a record is inserted or updated.</li>
<li>You can manually adjust the mappings if necessary.</li>
</ol>
 <div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination - Columns Mappings</p>
</div>
<h3>Step 5: Save Settings</h3>
<ul>
<li>Click <strong>OK</strong> to save the Upsert Destination configuration.</li>
</ul>
<h3>Step 6: Optional: Add Logging or Analysis</h3>
<ul>
<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.</li>
</ul>
<h3>Step 7: Execute the Package</h3>
<ul>
<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.</li>
</ul>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination Execution</p>
</div></div>
<p>&nbsp;</p>
<h2>Import Google Search Console API data in Reporting / other ETL tools (ODBC Usecase)</h2>
<p>There will be a time when you dont want to use SSIS connector like mentioned in previous sections but extract Google Search API data in Reporting Tools / Other ETL Platform.  Good news is you can use <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ZappySys ODBC Driver for JSON / REST API</a> in ODBC Apps. See few popular ODBC Apps below.</p>
<ul>
<li>Power BI connection for Google Search Console API</li>
<li>Excel connection for Google Search Console API</li>
<li>Informatica connection for Google Search Console API</li>
<li>MS Access connection for Google Search Console API</li>
<li>C# , PowerShell, VB.net connection for Google Search Console API</li>
</ul>
<div id="attachment_6416" style="width: 766px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6416" class="size-full wp-image-6416" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png" alt="Preview / Generate Query in JSON Driver / XML Driver" width="756" height="432" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png 756w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query-300x171.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></a><p id="caption-attachment-6416" class="wp-caption-text">Preview / Generate Query in JSON Driver / XML Driver</p></div>
<h2></h2>
<h2>Load Google Search Console API in SQL Server without any ETL</h2>
<p>Now let&#8217;s look at even more interesting integration scenario. If you have SQL Server and like to load Google Search Console API without any ETL then you can use <a href="https://zappysys.com/products/odbc-powerpack/data-gateway/" target="_blank" rel="noopener">Data Gateway</a></p>
<p>Read this article to learn how to <a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">load REST API in SQL Server</a> without any coding (Use just T-SQL) .</p>
<p>You can write query like below to load data inside SQL Table.</p><pre class="crayon-plain-tag">SELECT * FROM OPENQUERY([MY_LINKED_SERVER]
, 'SELECT * FROM $
WITH(
	 Src=''https://www.googleapis.com/webmasters/v3/sites/&lt;&lt;https://mysite.com,FUN_URLENC&gt;&gt;/searchAnalytics/query/?key={YOUR_API_KEY}--dont-escape--''
	,Filter=''$.rows[*]''
	,RequestData=''{
"startDate": "2019-01-01",
"endDate": "2019-01-10",
"dimensions" : ["date","country"]
}''
	,RequestContentTypeCode=''ApplicationJson''
	,Header=''cache-control: no-cache || Accept: */*''
	,RequestMethod=''POST''
	,EnableArrayFlattening=''True''
)')</pre><p>
<div id="attachment_5293" style="width: 899px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/11/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5293" class="size-full wp-image-5293" src="https://zappysys.com/blog/wp-content/uploads/2018/11/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png" alt="SSMS Output - Query REST API via Linked Server OPENQUERY statement (Connect to ZappySys Data Gateway)" width="889" height="481" srcset="https://zappysys.com/blog/wp-content/uploads/2018/11/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway.png 889w, https://zappysys.com/blog/wp-content/uploads/2018/11/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway-300x162.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/11/query-rest-api-sql-server-linked-server-openquery-zappysys-data-gateway-768x416.png 768w" sizes="(max-width: 889px) 100vw, 889px" /></a><p id="caption-attachment-5293" class="wp-caption-text">SSMS Output &#8211; Query REST API via Linked Server OPENQUERY statement (Connect to ZappySys Data Gateway)</p></div>
<h2>Conclusion</h2>
<p>So in this post we saw how easy it is to achieve total REST API integration in SSIS using JSON Connector. We also saw how to use ODBC Drivers to query REST API data inside Apps like Excel, MS Access, Informatica and other ODBC Apps using ODBC JSON / REST API driver. If you are SSIS User download <a href="https://zappysys.com/products/ssis-powerpack/">SSIS PowerPack and try for FREE</a> and if you don&#8217;t have SSIS in house and want to try more generic approach then <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">Download ODBC PowerPack Drivers for FREE Trial</a>.</p>
<p>The post <a href="https://zappysys.com/blog/get-data-google-search-console-api-ssis-odbc-drivers/">Get data from Google Search Console API in SSIS and ODBC Apps</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Make PayPal API Call in ODBC / SQL Server (T-SQL)</title>
		<link>https://zappysys.com/blog/make-paypal-api-call-odbc-sql-server/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Sat, 14 Sep 2019 08:49:27 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[T-SQL (SQL Server)]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[oauth2]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[paypal]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=8010</guid>

					<description><![CDATA[<p>Introduction In our previous article we saw how to call PayPal API in SSIS. Now in this article, we will see How to Make PayPal API Call in ODBC from the SQL Server. This blog mainly focuses on ODBC approach but steps mentioned to call PayPal APIs can be useful for any developer regardless of which [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/make-paypal-api-call-odbc-sql-server/">How to Make PayPal API Call in ODBC / SQL Server (T-SQL)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><span id="Introduction">Introduction</span></h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-logo-preview.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignleft wp-image-7825 size-thumbnail" title="PayPal" src="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-logo-preview-150x150.png" alt="PayPal" width="150" height="150" srcset="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-logo-preview-150x150.png 150w, https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-logo-preview-300x300.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-logo-preview.png 512w" sizes="(max-width: 150px) 100vw, 150px" /></a>In our previous article we saw <a href="https://zappysys.com/blog/read-paypal-api-data-ssis/" target="_blank" rel="noopener">how to call PayPal API in SSIS</a>. Now in this article, we will see How to Make PayPal API Call in ODBC from the SQL Server. This blog mainly focuses on ODBC approach but steps mentioned to call PayPal APIs can be useful for any developer regardless of which programming language or tool set you use. We will also see How to send basic Authorization header along with body in OAuth2.</p>
<p>We will go through the steps to Create PayPal Order from MS SQL Server.</p>
<p>In nutshell, this post will focus on how to make PayPal API Call using ODBC Driver.</p>
<p>&nbsp;</p>
<h2><span id="Prerequisites">Prerequisites</span></h2>
<p>Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:</p>
<ol>
<li>A first requirement, make sure that Microsoft Access installed</li>
<li>Make sure to have <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ZappySys ODBC PowerPack</a> installed.</li>
<li>Credentials of PayPal API. Click <a href="https://developer.paypal.com/developer/applications/" target="_blank" rel="noopener">here</a> to create API.</li>
</ol>
<h2><span id="What_is_Walmart"><span id="What_is_WordPress">What is PayPal?</span></span></h2>
<p><a href="https://www.paypal.com" target="_blank" rel="noopener">PayPal</a> is an American company operating a worldwide online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders. The company operates as a payment processor for online vendors, auction sites, and many other commercial users, for which it charges a fee in exchange for benefits such as one-click transactions and password memory. PayPal&#8217;s payment system, also called PayPal, is considered a type of payment rail.</p>
<h2 class="dx-content-title">Get Started with PayPal API</h2>
<p>If you have need to automate PayPal operations (e.g. read / write / update / delete ) then you can use PayPal REST API. Before you can integrate a PayPal product or solution, you must set up your development environment to get OAuth 2.0 client ID and secret credentials for the sandbox and live environments. You exchange these credentials for an access token that authorizes your REST API calls. To test your web and mobile apps, you create sandbox accounts.</p>
<h3 id="get-credentials" class="dx-anchor">Get PayPal credentials</h3>
<p>To generate OAuth 2.0 credentials for the sandbox and live environments:</p>
<ol>
<li><a href="https://www.paypal.com/signin?returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fapplications" target="_blank" rel="noopener"><strong>Log into Dashboard</strong></a> and type your PayPal personal or business account email and password.</li>
<li>In the <strong>REST API apps</strong> section, click <strong>Create App</strong>. The purpose of this app is to generate your credentials.</li>
<li>Type a name for your app and click <strong>Create App</strong>. The page shows your sandbox app information, which includes your credentials.<br />
<blockquote class="dx-blockquote-note"><p><strong>Note:</strong> To show your live app information, toggle to <strong>Live</strong>.</p></blockquote>
</li>
<li>Copy and save the client ID and secret for your sandbox app.
<div id="attachment_7837" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-client-ID-and-secret.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7837" class="wp-image-7837 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-client-ID-and-secret-768x443.png" alt="PayPal Client ID and Secret" width="720" height="415" srcset="https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-client-ID-and-secret-768x443.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-client-ID-and-secret-300x173.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/08/paypal-client-ID-and-secret.png 940w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7837" class="wp-caption-text">PayPal Client ID and Secret</p></div></li>
<li>Review your app details and save your app.</li>
</ol>
<h2><span id="Read_PayPal_API_Data_using_SSIS_JSON_Source"><span id="Read_Walmart_API_Data_using_SSIS_JSON_Source"><span id="Read_data_fromWordPressusing_SSIS_JSON_Source">Call PayPal </span></span></span>Create Order API in SQL Server (T-SQL) using Data Gateway</h2>
<p>Let’s start with an example. We use JSON Driver to make the call to PayPal API, we will Create the PayPal Order from SQL Server.</p>
<p>In REST API calls, include the URL to the API service for the environment:</p>
<ul class="compact">
<li>Sandbox: <code>https://api.sandbox.paypal.com</code></li>
<li>Live: <code>https://api.paypal.com</code></li>
</ul>
<ol>
<li>To do this, first of all, we will open the ZappySys Data Gateway Configuration:
<div id="attachment_5283" style="width: 410px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5283" class="wp-image-5283 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png" alt="Open ZappySys Data Gateway" width="400" height="315" srcset="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png 400w, https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway-300x236.png 300w" sizes="(max-width: 400px) 100vw, 400px" /></a><p id="caption-attachment-5283" class="wp-caption-text">Open ZappySys Data Gateway</p></div></li>
<li>Add the Native &#8211; ZappySys JSON Driver Data source.
<div id="attachment_5284" style="width: 568px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5284" class="wp-image-5284 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source.png" alt="Add Gateway Data Source (Native JSON Driver)" width="558" height="533" srcset="https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source.png 558w, https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source-300x287.png 300w" sizes="(max-width: 558px) 100vw, 558px" /></a><p id="caption-attachment-5284" class="wp-caption-text">Add Gateway Data Source (Native JSON Driver)</p></div></li>
<li>Now it&#8217;s time to connect with PayPal. Let&#8217;s use JSON Driver Data source with the following URL:<br />
<pre class="crayon-plain-tag">https://api.sandbox.paypal.com/v2/checkout/orders</pre>
Body:<br />
<pre class="crayon-plain-tag">{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "amount": {
        "currency_code": "USD",
        "value": "100.00"
      }
    }
  ]
}</pre>
<div id="attachment_8013" style="width: 875px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-json-driver-paypal-create-order.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8013" class="wp-image-8013 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-json-driver-paypal-create-order.png" alt="PayPal : Create Order" width="865" height="703" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-json-driver-paypal-create-order.png 865w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-json-driver-paypal-create-order-300x244.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-json-driver-paypal-create-order-768x624.png 768w" sizes="(max-width: 865px) 100vw, 865px" /></a><p id="caption-attachment-8013" class="wp-caption-text">PayPal : Create Order</p></div></li>
<li>Create Basic OAuth Client Credentials Grant (Configure ZS-OAuth Connection).<br />
In the SSIS ZS OAuth Connection Manager, Select Provider as Custom, select version as OAuth2 and select Grant Type as  Client Credentials Grant. Enter the credentials and access token url and click OK.<br />
<pre class="crayon-plain-tag">https://api.sandbox.paypal.com/v1/oauth2/token</pre>
<div id="attachment_8014" style="width: 807px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-oauth-basic-client-credential-grant.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8014" class="wp-image-8014 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-oauth-basic-client-credential-grant.png" alt="ZS OAuth Connection – Client Credentials Grant" width="797" height="751" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-oauth-basic-client-credential-grant.png 797w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-oauth-basic-client-credential-grant-300x283.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-oauth-basic-client-credential-grant-768x724.png 768w" sizes="(max-width: 797px) 100vw, 797px" /></a><p id="caption-attachment-8014" class="wp-caption-text">ZS OAuth Connection – Client Credentials Grant</p></div></li>
<li>Furthermore, Now click on Test Connection button to test PayPal Connection.
<div id="attachment_8015" style="width: 812px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-test-connection.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8015" class="wp-image-8015 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-test-connection.png" alt="PayPal : Test Connection" width="802" height="702" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-test-connection.png 802w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-test-connection-300x263.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/09/odbc-paypal-test-connection-768x672.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a><p id="caption-attachment-8015" class="wp-caption-text">PayPal : Test Connection</p></div></li>
<li>Write your Query and <strong>Preview Data</strong>.</li>
<li><strong>(Optional Step)</strong> If your Query use POST method (e.g. Create Invoice) to submit data then you have <a href="https://zappysys.com/blog/caching-metadata-odbc-drivers-performance/#Metadata_Options_in_SQL_Query" target="_blank" rel="noopener">Save Metadata (Read More)</a>. We will use this meta file in later step when we call POST request.
<div id="attachment_4716" style="width: 551px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/08/post-data-json-rest-api-using-sql-query-odbc-driver.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4716" class="size-full wp-image-4716" src="https://zappysys.com/blog/wp-content/uploads/2018/08/post-data-json-rest-api-using-sql-query-odbc-driver.png" alt="Generate Metadata File for REST API POST Operation using ZappySys API Driver (JSON / XML)" width="541" height="593" srcset="https://zappysys.com/blog/wp-content/uploads/2018/08/post-data-json-rest-api-using-sql-query-odbc-driver.png 541w, https://zappysys.com/blog/wp-content/uploads/2018/08/post-data-json-rest-api-using-sql-query-odbc-driver-274x300.png 274w" sizes="(max-width: 541px) 100vw, 541px" /></a><p id="caption-attachment-4716" class="wp-caption-text">Generate Metadata File for REST API POST Operation using ZappySys API Driver (JSON / XML)</p></div></li>
<li>Now using Code Generator we will generate the query.
<div id="attachment_6416" style="width: 766px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6416" class="wp-image-6416 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png" alt="odbc-json-driver-generate-quickbooks-query" width="756" height="432" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png 756w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query-300x171.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></a><p id="caption-attachment-6416" class="wp-caption-text">Generate Query</p></div></li>
</ol>
<h3>Setup Linked Server <span id="Create_ODBC_DSN_8211_JSON_Driver">in MS SQL Server for PayPal</span></h3>
<p>Once you configured the data source in Gateway, we can now setup Linked Server in SQL Server to query API Calls.</p>
<ol>
<li>Assuming you have installed SQL Server and SSMS. If not then get both for FREE from here: <a href="https://www.microsoft.com/en-us/sql-server/sql-server-editions-express" target="_blank" rel="noopener">Get SQL Server Express</a> and  <a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms" target="_blank" rel="noopener">Get SSMS</a></li>
<li>Open SSMS and connect to SQL Server.</li>
<li>Go to Root &gt; Server Objects &gt; Linked Servers node. Right click and click <strong>New Linked Server&#8230;</strong>
<div class="wp-caption alignnone">
<p><a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-linked-server-ssms.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-linked-server-ssms.png?w=720&amp;ssl=1" alt="Add Linked Server in SQL Server" width="420" height="262" /></a></p>
<p class="wp-caption-text">Add Linked Server in SQL Server</p>
</div>
</li>
<li> Now enter the linked server name, select Provider as SQL Native Client</li>
<li>Enter data source as <strong><pre class="crayon-plain-tag">GatewayServerName, PORT_NUMBER</pre></strong> where server name is where ZappySys Gateway is running (Can be same as SQL Server machine or remote machine). Default PORT_NUMBER is 5000 but confirm on Data gateway &gt; General tab in case its different.</li>
<li>Enter Catalog Name. This must match name from Data gateway Data sources grid &gt; Name column
<div class="wp-caption alignnone">
<p><a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/11/ssms-sql-server-configure-linked-server-1.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/11/ssms-sql-server-configure-linked-server-1.png?w=720&amp;ssl=1" alt="Configure Linked Server Provider, Catalog, Server, Port for ZappySys Data Gateway Connection" width="643" height="496" /></a></p>
<p class="wp-caption-text">Configure Linked Server Provider, Catalog, Server, Port for ZappySys Data Gateway Connection</p>
</div>
</li>
<li>Click on Security Tab and select last option &#8220;<strong>Be made using this security context</strong>&#8220;. Enter your gateway user account here.</li>
<li>Click OK to save Linked Server</li>
</ol>
<h3>Create Order in PayPal from SQL Server (Call POST API Method)</h3>
<ol>
<li>To Create Order in PayPal we need to execute the query like this. Please refer to this link for more information: <a href="https://developer.paypal.com/docs/api/orders/v2/#orders_create" target="_blank" rel="noopener">Create Order example.</a><br />
<div class="su-note"  style="border-color:#e5de9d;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:#fff8b7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">Important Note*: Below query uses META property <a href="https://zappysys.com/blog/caching-metadata-odbc-drivers-performance/#Metadata_Options_in_SQL_Query" target="_blank" rel="noopener">(fully explained here)</a>. This is needed if you creating anew record using POST, PUT. If you don&#8217;t pass META='{xxxx}&#8217; in query driver calls REST API two times (first time to parse metadata and second time to get actual data). So that you find some odd thing in PayPal if you execute the query without Meta then you will find two same Orders created in your PayPal as the driver makes two calls as mentioned above.</div></div>
<pre class="crayon-plain-tag">-- In below query rather than WITH(META=''[{"Name": "Success","Type": "Int32"}]'' ....
-- You can also use WITH(META=''c:\my-meta-file.txt'' .... We created this file in previous section

SELECT * FROM OPENQUERY([MY_LINKED_SERVER_NAME]
, 'SELECT * FROM $
WITH(META=''[{"Name": "Success","Type": "Int32"}]''
	 ,Src=''https://api.sandbox.paypal.com/v2/checkout/orders''
	,RequestData=''{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "amount": {
        "currency_code": "USD",
        "value": "100.00"
      }
    }
  ]
}''
	,RequestContentTypeCode=''ApplicationJson''
	,RequestMethod=''POST''
)')</pre>
</li>
<li>Here is the preview after you run REST API query in SQL Server. It will return created Order Id, Links and status. Notice that you can override default configuration by supplying <a href="https://zappysys.com/onlinehelp/odbc-powerpack/scr/json-odbc-driver-connectionstring.htm" target="_blank" rel="noopener">many parameters</a> in WITH clause.
<div id="attachment_8018" style="width: 586px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/sql-server-create-order-result.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8018" class="wp-image-8018 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/09/sql-server-create-order-result.png" alt="Create Order In PayPal Using SQL Query" width="576" height="750" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/sql-server-create-order-result.png 576w, https://zappysys.com/blog/wp-content/uploads/2019/09/sql-server-create-order-result-230x300.png 230w" sizes="(max-width: 576px) 100vw, 576px" /></a><p id="caption-attachment-8018" class="wp-caption-text">Create Order In PayPal Using SQL Query</p></div></li>
<li>You can also find this created Order by opening that URL in the browser.
<div id="attachment_8019" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/paypal-created-order.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8019" class="wp-image-8019 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/09/paypal-created-order-768x751.png" alt="Created Order In PayPal" width="720" height="704" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/paypal-created-order-768x751.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/09/paypal-created-order-300x293.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/09/paypal-created-order.png 815w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-8019" class="wp-caption-text">Created Order In PayPal</p></div></li>
</ol>
<h2><span id="Read_PayPal_API_Data_using_SSIS_JSON_Source"><span id="Read_Walmart_API_Data_using_SSIS_JSON_Source"><span id="Read_data_fromWordPressusing_SSIS_JSON_Source">PayPal API integration in ODBC apps (e.g. Power BI, Excel, Informatica, Access, C#&#8230;)</span></span></span></h2>
<p>So far we have looked at SQL Server integration only, but what if you like to use same powerful ZappySys API drivers part of <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ODBC PowerPack</a> in other Apps like Power BI, Excel, MS Access, Informatica and many more&#8230; ?? Well not to worry if you know that App supports ODBC you can use ZappySys ODBC Driver same way described earlier&#8230; only difference is you dont need Linked Server and you dont have to use OPENQUERY statement when you use ODBC Drivers.</p>
<div class="content_block" id="custom_post_widget-7051">ZappySys ODBC Drivers built using ODBC standard which is widely adopted by industry for a long time. Which mean the majority of BI Tools / Database Engines / ETL Tools already there will support native / 3rd party ODBC Drivers. Below is the small list of most popular tools / programming languages our Drivers support. If your tool / programming language doesn't appear in the below list, which means we have not documented use case but as long as your tool supports ODBC Standard, our drivers should work fine.

&nbsp;

<img loading="lazy" decoding="async" class="" src="//zappysys.com/images/odbc-powerpack/odbc-powerpack-integration.jpg" alt="ZappySys ODBC Drivers for REST API, JSON, XML - Integrate with Power BI, Tableau, QlikView, QlikSense, Informatica PowerCenter, Excel, SQL Server, SSIS, SSAS, SSRS, Visual Studio / WinForm / WCF, Python, C#, VB.net, PHP. PowerShell " width="750" height="372" />
<table style="valign: top;">
<tbody>
<tr>
<td>
<p style="text-align: center;"><strong>BI / Reporting Tools
Integration</strong></p>
</td>
<td style="text-align: center;"><strong>ETL Tools
Integration
</strong></td>
<td style="text-align: center;"><strong>Programming Languages</strong>
<strong>Integration</strong></td>
</tr>
<tr>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/howto-import-json-rest-api-power-bi/" target="_blank" rel="noopener">Microsoft Power BI</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-tableau-read-json-soap-xml-csv/">Tableau</a></li>
 	<li><a href="https://zappysys.com/blog/read-rest-api-using-ssrs-reports-call-json-xml-web-service/" target="_blank" rel="noopener">SSRS (SQL Reporting Services)</a></li>
 	<li><a href="https://zappysys.com/blog/qlik-rest-connector-examples-read-json-xml-api/" target="_blank" rel="noopener">QlikView /Qlik Sense</a></li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-in-microstrategy-json-soap-xml/" target="_blank" rel="noopener">MicroStrategy</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-google-sheet-call-appscript-load-json-soap-xml-csv/" target="_blank" rel="noopener">Google Sheet</a></li>
 	<li><a href="https://zappysys.com/blog/import-json-excel-load-file-rest-api/" target="_blank" rel="noopener">Microsoft Excel</a></li>
 	<li><a href="https://zappysys.com/api/integration-hub/rest-api-connector/access?context=connector" target="_blank" rel="noopener">Microsoft Access</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/read-json-informatica-import-rest-api-json-file/" target="_blank" rel="noopener">Informatica PowerCenter</a> (Windows)</li>
 	<li>Informatica Cloud</li>
 	<li>SSIS (SQL Integration Services)</li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">SQL Server</a></li>
 	<li><a href="https://zappysys.com/blog/read-write-rest-api-data-in-talend-json-xml-soap/" target="_blank" rel="noopener">Talend Data Studio</a></li>
 	<li><a href="https://zappysys.com/blog/pentaho-read-rest-api-in-pentaho/" target="_blank" rel="noopener">Pentaho Kettle</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li>Visual Studio</li>
 	<li><a href="https://zappysys.com/blog/calling-rest-api-in-c/" target="_blank" rel="noopener">C#</a></li>
 	<li>C++</li>
 	<li><a href="https://zappysys.com/blog/connect-java-to-rest-api-json-soap-xml/" target="_blank" rel="noopener">JAVA</a></li>
 	<li><a href="https://zappysys.com/blog/set-rest-python-client/" target="_blank" rel="noopener">Python</a></li>
 	<li>PHP</li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-powershell-script-export-json-csv/" target="_blank" rel="noopener">PowerShell</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">T-SQL (Using Linked Server)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
&nbsp;</div>
<h2><span id="Step-by-Step_Import_REST_API_into_Power_BI">Conclusion</span></h2>
<p>So in this blog, we learned how to generate a PayPal API Token, Load PayPal data in MS SQL Server table using <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a> in a very simple way. You can achieve many more functionalities with this tool. Check our blogs/articles on <a href="https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/" target="_blank" rel="noopener"><strong>JSON / REST API Driver</strong></a> to find out what <em>this tool</em> is capable of more.</p>
<h2><span id="References">References</span></h2>
<p>Finally, you can use the following links for more information about the use of PayPal API with our tools:</p>
<ul>
<li><strong>Landing Page</strong> for <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a>, you can also find <a href="https://youtu.be/iwezz0Z3D4U" target="_blank" rel="noopener">Tutorial Video</a> here.</li>
<li><strong>Help File:</strong> Documentation of <a href="https://zappysys.com/onlinehelp/odbc-powerpack/index.htm#page=json-odbc-driver-intro.htm" target="_blank" rel="noopener">JSON Driver</a>.</li>
<li><a href="https://developer.paypal.com/docs/api/overview/" target="_blank" rel="noopener">PayPal API</a></li>
</ul>
<p>The post <a href="https://zappysys.com/blog/make-paypal-api-call-odbc-sql-server/">How to Make PayPal API Call in ODBC / SQL Server (T-SQL)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pivot JSON and XML data using SSIS or ODBC Drivers</title>
		<link>https://zappysys.com/blog/pivot-json-xml-data-using-ssis-odbc-drivers/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 11 Sep 2019 21:36:09 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS XML Source (File / SOAP)]]></category>
		<category><![CDATA[XML File / SOAP API Driver]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=7975</guid>

					<description><![CDATA[<p>Introduction In our previous post we saw various ways to transform JSON arrays. However there will be a time when your JSON / XML file wont have Array and you need to Pivot JSON Data. Sample JSON data file Here is a sample JSON file which we like to parse into rows and columns. Notice [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/pivot-json-xml-data-using-ssis-odbc-drivers/">Pivot JSON and XML data using SSIS or ODBC Drivers</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In our previous post we saw <a href="https://zappysys.com/blog/parse-multi-dimensional-json-array-ssis/" target="_blank" rel="noopener">various ways to transform JSON arrays</a>. However there will be a time when your JSON / XML file wont have Array and you need to Pivot JSON Data.</p>
<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>Sample JSON data file</h2>
<p>Here is a sample JSON file which we like to parse into rows and columns. Notice how it is using values inside in property name. This pattern needs Pivot option usage described later in this article.</p><pre class="crayon-plain-tag">{
	"version": 1.0,
	"products": {
		"P001": {
			"name": "Product 1",
			"price": 10
		},
		"P002": {
			"name": "Product 2",
			"price": 11
		},
		"P003": {
			"name": "Product 3",
			"price": 12
		}
	}
}</pre><p>
If you like to play with real data then use below URL. This JSON has <strong>60MB</strong> worth of data for all Products offered on AWS.  And It has similar structure as above except many more attributes under <strong>products </strong>node.</p><pre class="crayon-plain-tag">https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json</pre><p>
&nbsp;</p>
<h2>Using SSIS PowerPack to Pivot JSON data</h2>
<p>ZappySys offers powerful <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON</a> and <a href="https://zappysys.com/products/ssis-powerpack/ssis-xml-source/" target="_blank" rel="noopener">XML</a> Connectors. Below section will describe how to Parse and Pivot JSON data or Pivot XML data. For demo purpose we will use JSON Source but steps are almost same for XML too.</p>
<h3>Step-By-Step JSON Pivot</h3>
<ol>
<li>First drag data flow from SSIS Toolbox and then double click data flow
<div style="width: 470px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" alt="Drag SSIS Data Flow Task from Toolbox" width="460" height="155" /><p class="wp-caption-text">Drag SSIS Data Flow Task from Toolbox</p></div></li>
<li>Once Data flow designer is open, drag ZS JSON Source from SSIS Toolbox.
<div style="width: 551px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png" alt="Drag ZappySys JSON Source" width="541" height="144" /><p class="wp-caption-text">Drag ZappySys JSON Source</p></div></li>
<li>Now for demo we will use Hard coded JSON using Direct Value option as below. You can also enter URL or File path if you select Direct Path option.</li>
<li>Go to <strong>Pivot Columns to Rows</strong> Tab and check <strong>Enable Pivoting</strong> Option
<div id="attachment_7977" style="width: 691px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/pivot-json-xml-data-option.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7977" class="size-full wp-image-7977" src="https://zappysys.com/blog/wp-content/uploads/2019/09/pivot-json-xml-data-option.png" alt="Pivot JSON / XML Data option for ZappySys API Connectors / Drivers" width="681" height="120" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/pivot-json-xml-data-option.png 681w, https://zappysys.com/blog/wp-content/uploads/2019/09/pivot-json-xml-data-option-300x53.png 300w" sizes="(max-width: 681px) 100vw, 681px" /></a><p id="caption-attachment-7977" class="wp-caption-text">Pivot JSON / XML Data option for ZappySys API Connectors / Drivers</p></div></li>
<li>Now come back to <strong>Filter Options</strong> Tab here you can either browse Filter or enter by hand. <strong>If file is too large then enter by hand</strong>. For example in our case we will enter <pre class="crayon-plain-tag">$.products</pre>  because we like to to parse structure below that node. If you have nested hierarchy (i.e. products node under orders node and so on) then use dot to separate them e.g. <pre class="crayon-plain-tag">$.customer.orders.products</pre></li>
<li><strong>For very Large file</strong> you need to <strong>Un-check Include Parent Columns</strong> option else you will get OutOfMemory Exception</li>
<li>Now click Preview to see our data.
<div id="attachment_7976" style="width: 789px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-json-pivot-data-options.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7976" class="size-full wp-image-7976" src="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-json-pivot-data-options.png" alt="Pivot JSON Data using SSIS JSON Source" width="779" height="744" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-json-pivot-data-options.png 779w, https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-json-pivot-data-options-300x287.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-json-pivot-data-options-768x733.png 768w" sizes="(max-width: 779px) 100vw, 779px" /></a><p id="caption-attachment-7976" class="wp-caption-text">Pivot JSON Data using SSIS JSON Source</p></div>
<p>&nbsp;</li>
<li>Now you can connect your JSON / XML source to destination. See below example.
<div id="attachment_1578" style="width: 596px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-package-execute-rest-api-loading-data-from-bigquery-to-sqlserver.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1578" class="size-full wp-image-1578" src="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-package-execute-rest-api-loading-data-from-bigquery-to-sqlserver.png" alt="SSIS Package Execution - Loading Google BigQuery Data into SQL Server" width="586" height="296" srcset="https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-package-execute-rest-api-loading-data-from-bigquery-to-sqlserver.png 586w, https://zappysys.com/blog/wp-content/uploads/2017/07/ssis-package-execute-rest-api-loading-data-from-bigquery-to-sqlserver-300x152.png 300w" sizes="(max-width: 586px) 100vw, 586px" /></a><p id="caption-attachment-1578" class="wp-caption-text">SSIS Package Execution &#8211;<br />Loading Google BigQuery Data into SQL Server</p></div></li>
</ol>
<h2>Using ODBC PowerPack to Pivot JSON data</h2>
<p>So far we talked how to use SSIS to read your JSON data and Pivot it but what if you want to consume JSON / XML / REST API data in some other App without doing ETL via SSIS?  Thats where <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ZappySys ODBC PowerPack</a> comes in picture. Its a collection of many drivers including <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">JSON Driver</a> and <a href="https://zappysys.com/products/odbc-powerpack/odbc-xml-soap-api-driver/" target="_blank" rel="noopener">XML Driver</a>.  You can also use <a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">Data Gateway Approach</a>, which allows T-SQL code to fetch JSON / XML data directly into SQL Server Table without any ETL / Programming.</p>
<p>Here is sample query you can run using JSON Driver or XML Driver</p><pre class="crayon-plain-tag">SELECT * FROM $
WITH(
	 Src='https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json'
	,Filter='$.products'
	,IncludeParentColumns='False'
	,EnablePivot='True'
)</pre><p>
See below screenshot of JSON Driver Configuration to get idea.<br />
<strong>Note:</strong> Use above query rather than what is displayed in the Screenshot.</p>
<div id="attachment_4467" style="width: 883px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/06/call-rest-api-in-csharp-odbc-json-driver.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4467" class="size-full wp-image-4467" src="https://zappysys.com/blog/wp-content/uploads/2018/06/call-rest-api-in-csharp-odbc-json-driver.png" alt="Using ODBC DSN in C# code to call REST API" width="873" height="598" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/call-rest-api-in-csharp-odbc-json-driver.png 873w, https://zappysys.com/blog/wp-content/uploads/2018/06/call-rest-api-in-csharp-odbc-json-driver-300x205.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/06/call-rest-api-in-csharp-odbc-json-driver-768x526.png 768w" sizes="(max-width: 873px) 100vw, 873px" /></a><p id="caption-attachment-4467" class="wp-caption-text">Using ODBC DSN in C# code to call REST API</p></div>
<p>&nbsp;</p>
<div id="attachment_6416" style="width: 766px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6416" class="size-full wp-image-6416" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png" alt="Preview / Generate Query in JSON Driver / XML Driver" width="756" height="432" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png 756w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query-300x171.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></a><p id="caption-attachment-6416" class="wp-caption-text">Preview / Generate Query in JSON Driver / XML Driver</p></div>
<div class="content_block" id="custom_post_widget-7051">ZappySys ODBC Drivers built using ODBC standard which is widely adopted by industry for a long time. Which mean the majority of BI Tools / Database Engines / ETL Tools already there will support native / 3rd party ODBC Drivers. Below is the small list of most popular tools / programming languages our Drivers support. If your tool / programming language doesn't appear in the below list, which means we have not documented use case but as long as your tool supports ODBC Standard, our drivers should work fine.

&nbsp;

<img loading="lazy" decoding="async" class="" src="//zappysys.com/images/odbc-powerpack/odbc-powerpack-integration.jpg" alt="ZappySys ODBC Drivers for REST API, JSON, XML - Integrate with Power BI, Tableau, QlikView, QlikSense, Informatica PowerCenter, Excel, SQL Server, SSIS, SSAS, SSRS, Visual Studio / WinForm / WCF, Python, C#, VB.net, PHP. PowerShell " width="750" height="372" />
<table style="valign: top;">
<tbody>
<tr>
<td>
<p style="text-align: center;"><strong>BI / Reporting Tools
Integration</strong></p>
</td>
<td style="text-align: center;"><strong>ETL Tools
Integration
</strong></td>
<td style="text-align: center;"><strong>Programming Languages</strong>
<strong>Integration</strong></td>
</tr>
<tr>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/howto-import-json-rest-api-power-bi/" target="_blank" rel="noopener">Microsoft Power BI</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-tableau-read-json-soap-xml-csv/">Tableau</a></li>
 	<li><a href="https://zappysys.com/blog/read-rest-api-using-ssrs-reports-call-json-xml-web-service/" target="_blank" rel="noopener">SSRS (SQL Reporting Services)</a></li>
 	<li><a href="https://zappysys.com/blog/qlik-rest-connector-examples-read-json-xml-api/" target="_blank" rel="noopener">QlikView /Qlik Sense</a></li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-in-microstrategy-json-soap-xml/" target="_blank" rel="noopener">MicroStrategy</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-google-sheet-call-appscript-load-json-soap-xml-csv/" target="_blank" rel="noopener">Google Sheet</a></li>
 	<li><a href="https://zappysys.com/blog/import-json-excel-load-file-rest-api/" target="_blank" rel="noopener">Microsoft Excel</a></li>
 	<li><a href="https://zappysys.com/api/integration-hub/rest-api-connector/access?context=connector" target="_blank" rel="noopener">Microsoft Access</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/read-json-informatica-import-rest-api-json-file/" target="_blank" rel="noopener">Informatica PowerCenter</a> (Windows)</li>
 	<li>Informatica Cloud</li>
 	<li>SSIS (SQL Integration Services)</li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">SQL Server</a></li>
 	<li><a href="https://zappysys.com/blog/read-write-rest-api-data-in-talend-json-xml-soap/" target="_blank" rel="noopener">Talend Data Studio</a></li>
 	<li><a href="https://zappysys.com/blog/pentaho-read-rest-api-in-pentaho/" target="_blank" rel="noopener">Pentaho Kettle</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li>Visual Studio</li>
 	<li><a href="https://zappysys.com/blog/calling-rest-api-in-c/" target="_blank" rel="noopener">C#</a></li>
 	<li>C++</li>
 	<li><a href="https://zappysys.com/blog/connect-java-to-rest-api-json-soap-xml/" target="_blank" rel="noopener">JAVA</a></li>
 	<li><a href="https://zappysys.com/blog/set-rest-python-client/" target="_blank" rel="noopener">Python</a></li>
 	<li>PHP</li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-powershell-script-export-json-csv/" target="_blank" rel="noopener">PowerShell</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">T-SQL (Using Linked Server)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
&nbsp;</div>
<h2>Advanced Pivot with Path / Search and Replace Option</h2>
<p>Now let&#8217;s look at an advanced scenario where you like to extract Pivot_Path (know where Pivoted Property came from). For that, you can download the latest version which providers IncludePivotPath and EnablePivotPathSearchReplace options as below.</p>
<p>As you can see in the below example let&#8217;s say you like to extract table names and view names if defined under &#8220;views&#8221; node.</p><pre class="crayon-plain-tag">{
  "table-1": {
      "views": {
        "view-tbl1-1": {},
        "view-tbl1-2": {}
    }
  },
  "table-2": {
      "views": {}
  },
  "table-3": {
      "views": {
        "view-tbl3-1": {}
    }
  }
}</pre><p>
&nbsp;</p>
<p>We set following</p>
<ul>
<li>On the Filter Options Tab<br />
Filter = <pre class="crayon-plain-tag">$..views</pre></li>
<li>on the Pivot Columns To Rows Tab<br />
Check Enable Pivoting<br />
Check Include_PivotPath<br />
Check Enable Pivot_Path search/replace<br />
Set Search for <pre class="crayon-plain-tag">(.*).views.(.*)--regex</pre>
Set Replace With <pre class="crayon-plain-tag">$1</pre></li>
</ul>
<div id="attachment_10406" style="width: 522px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/advanced-pivot-path-search-replace.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10406" class="size-full wp-image-10406" src="https://zappysys.com/blog/wp-content/uploads/2019/09/advanced-pivot-path-search-replace.png" alt="Advanced Pivot Option - Search and Replace Path" width="512" height="650" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/advanced-pivot-path-search-replace.png 512w, https://zappysys.com/blog/wp-content/uploads/2019/09/advanced-pivot-path-search-replace-236x300.png 236w" sizes="(max-width: 512px) 100vw, 512px" /></a><p id="caption-attachment-10406" class="wp-caption-text">Advanced Pivot Option &#8211; Search and Replace Path</p></div>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>In this particle we saw how to use some advanced options for XML/ JSON Source and ODBC Drivers. You can download respective product depending your usecase. For SSIS usecase <a href="https://zappysys.com/products/odbc-powerpack/">Download SSIS PowerPack</a> and for other ETL / Reporting app integration scenarios (i.e. Power BI, Informatica, SSRS , Excel, MS Access, SQL Server, JAVA, C# &#8230;.) <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">Download ODBC PowerPack</a>.</p>
<p>&nbsp;</p>
<p>The post <a href="https://zappysys.com/blog/pivot-json-xml-data-using-ssis-odbc-drivers/">Pivot JSON and XML data using SSIS or ODBC Drivers</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Export REST API to MS Access using VBA Command Button</title>
		<link>https://zappysys.com/blog/export-rest-api-ms-access-using-vba-command-button/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Sat, 29 Jun 2019 09:34:55 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[Reporting - Microsoft Access]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[command button]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[vba]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=7317</guid>

					<description><![CDATA[<p>Introduction In our previous blog we saw how to export REST API to CSV using c# or Python. In this post we will look at specific example on How to Export REST API to MS Access using VBA Command Button, along with few other topics such as how to make REST API Call, how to [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/export-rest-api-ms-access-using-vba-command-button/">How to Export REST API to MS Access using VBA Command Button</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><span id="Introduction">Introduction</span></h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/VBA_250x250.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignleft wp-image-7318 size-thumbnail" src="https://zappysys.com/blog/wp-content/uploads/2019/06/VBA_250x250-150x150.png" alt="VBA" width="150" height="150" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/VBA_250x250-150x150.png 150w, https://zappysys.com/blog/wp-content/uploads/2019/06/VBA_250x250.png 250w" sizes="(max-width: 150px) 100vw, 150px" /></a>In our previous blog we saw how to <a href="https://zappysys.com/blog/how-to-export-rest-api-to-csv/" target="_blank" rel="noopener">export REST API to CSV using c# or Python</a>. In this post we will look at specific example on <strong>How to Export REST API to MS Access using VBA Command Button</strong>, along with few other topics such as how to make <strong>REST API Call</strong>, how to read all Customers data from Odata using our ODBC JSON Driver and load it into the Ms Access Table.</p>
<p>We will go through the steps to read data from Odata and Load into MS Access using VBA Command Button.</p>
<p>In nutshell, this post will focus on how to make ODBC Driver Call using VBA.</p>
<p>So let’s get started.</p>
<h2><span id="Requirements">Requirements</span></h2>
<ol>
<li>First of all, you will need <a href="https://zappysys.com/products/odbc-powerpack/download/" target="_blank" rel="noopener">ZappySys ODBC PowerPack</a> installed.</li>
<li>Secondly, Make sure that Microsoft Access installed for VBA example.</li>
</ol>
<h2><span id="An_introduction_to_Rest_API_and_OData">An introduction to Rest API and OData</span></h2>
<p>In this example, we will use OData (Open Data Protocol) to consume REST API. REST API (Representational State Transfer Application Program Interface) allows handling the interoperability between computers and the internet.</p>
<p>In REST API we can handle web services in different formats. In this example, we will work with the Northwind example. The Northwind example is available in this URL:</p>
<div id="crayon-5bc180f1dd015720033381" class="crayon-syntax crayon-theme-vs2012 crayon-font-courier-new crayon-os-pc print-yes notranslate">
<div class="crayon-main">
<pre class="crayon-plain-tag">https://services.odata.org/V3/Northwind/Northwind.svc</pre>
</div>
</div>
<ol>
<li>By default, the data is displayed in XML format. To show the data in JSON use this URL:<br />
<pre class="crayon-plain-tag">https://services.odata.org/V3/Northwind/Northwind.svc/?$format=json</pre>
</li>
<li>There are collections of data like Categories, CustomerDemographic, Customers, Invoices, etc. For example, the following URL will show the data of the categories collection:<br />
<pre class="crayon-plain-tag">https://services.odata.org/V3/Northwind/Northwind.svc/Customers?$format=json</pre>
</li>
<li>In the next steps, we will use ZappySys drivers to connect to this URL and query using OData.</li>
</ol>
<h2><span id="Configure_ODBC_DSN_for_ZappySys_JSON_Driver">Configure ODBC DSN for ZappySys JSON Driver</span></h2>
<p>ODBC driver can be accessed in two modes.</p>
<ol>
<li>Using DSN</li>
<li>Without DSN (Supply direct Connection String e.g. <strong>DRIVER={ZappySys JSON Driver}; ……..</strong> )</li>
</ol>
<p>In this article, we will use the DSN approach (User DSN). We will first add the ZappySys JSON Driver in the ODBC Data Source Administrator.</p>
<p>Follow these steps to accomplish the task:</p>
<ol>
<li>First, <strong>Windows search</strong>, write <strong>ODBC</strong> and select the <strong>ODBC Data sources (32 bits)</strong>
<div id="attachment_2780" class="wp-caption aligncenter">
<div id="attachment_2780" style="width: 395px" class="wp-caption aligncenter"><a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/open-ODBC-Data-souce-administrator.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2780" class="wp-image-2780 size-full" src="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/open-ODBC-Data-souce-administrator.png?zoom=0.8999999761581421&amp;resize=385%2C520&amp;ssl=1" alt="Open ODBC Data source" width="385" height="520" /></a><p id="caption-attachment-2780" class="wp-caption-text">Open ODBC Data Source</p></div>
</div>
</li>
<li>As a second step, in ODBC Data source Administrator press the <strong>Add</strong> button.
<div id="attachment_2725" class="wp-caption aligncenter">
<div id="attachment_2725" style="width: 600px" class="wp-caption aligncenter"><a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/add-ZappySys.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2725" class="wp-image-2725 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/03/add-ZappySys.png" alt="Add ZappySys" width="590" height="423" srcset="https://zappysys.com/blog/wp-content/uploads/2018/03/add-ZappySys.png 590w, https://zappysys.com/blog/wp-content/uploads/2018/03/add-ZappySys-300x215.png 300w" sizes="(max-width: 590px) 100vw, 590px" /></a><p id="caption-attachment-2725" class="wp-caption-text">Add ZappySys</p></div>
</div>
</li>
<li>In this step, create the new data source, select <strong>ZappySys JSON Driver.</strong>
<div id="attachment_2772" class="wp-caption aligncenter">
<div id="attachment_2772" style="width: 302px" class="wp-caption aligncenter"><a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-data-source-zappysys-json-driver.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2772" class="wp-image-2772 size-medium" src="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-data-source-zappysys-json-driver.png?zoom=0.8999999761581421&amp;resize=292%2C218&amp;ssl=1" alt="add new zappysys" width="292" height="217" /></a><p id="caption-attachment-2772" class="wp-caption-text">Add new zappysys json driver</p></div>
</div>
</li>
<li>Here we have several properties, write a data source name. In this example, the name will be ZappySys JSON to Excel.</li>
<li>The Data Source (URL or file path) can specify the URL of the source or if it is a local file, you can specify the local path. In this example, the URL is:<br />
<pre class="crayon-plain-tag">https://services.odata.org/V3/Northwind/Northwind.svc/Customers?$format=json</pre>
You can also specify a local file path as Data SourceFor a single file:  c:\data\myfile_1.json<br />
For multiple files: c:\data\myfile_*.json</li>
<li>Configure the ODBC JSON Driver like this and test the connection:
<div id="attachment_7321" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/10/odbc-JSON-driver-odata-configuration.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7321" class="wp-image-7321 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2018/10/odbc-JSON-driver-odata-configuration-768x698.png" alt="Configure JSON Driver for REST API Call" width="720" height="654" srcset="https://zappysys.com/blog/wp-content/uploads/2018/10/odbc-JSON-driver-odata-configuration-768x698.png 768w, https://zappysys.com/blog/wp-content/uploads/2018/10/odbc-JSON-driver-odata-configuration-300x273.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/10/odbc-JSON-driver-odata-configuration.png 849w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7321" class="wp-caption-text">Configure JSON Driver for REST API Call</p></div></li>
<li>Now click on Copy Connection string Button.
<div id="attachment_7322" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-driver-copy-connection-string.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7322" class="wp-image-7322 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-driver-copy-connection-string-768x672.png" alt="ODBC Driver : Copy Connection String" width="720" height="630" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-driver-copy-connection-string-768x672.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-driver-copy-connection-string-300x263.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-driver-copy-connection-string.png 802w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7322" class="wp-caption-text">ODBC Driver : Copy Connection String</p></div></li>
<li>That&#8217;s it Connection string is copied to clipboard. Now let&#8217;s use this connection string in the VBA code.</li>
</ol>
<h2><span id="How_to_import_REST_API_data_to_Excel">How to import REST API data to Access using VBA</span></h2>
<ol>
<li>Open the access database and create the table with the desire columns to get API data in it.
<div id="attachment_7324" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7324" class="wp-image-7324 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access-768x511.png" alt="Create Table in Access" width="720" height="479" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access-768x511.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access-300x200.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access-1024x682.png 1024w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access-272x182.png 272w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-table-in-access.png 1546w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7324" class="wp-caption-text">Create Table in Access</p></div></li>
<li>Now close the table, and go to Create menu and click on Form Design to add the new blank form in design view.
<div id="attachment_7325" style="width: 642px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-form-desing-access.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7325" class="wp-image-7325 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-form-desing-access.png" alt="Access : Create a New Form in Design View" width="632" height="402" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-form-desing-access.png 632w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-create-form-desing-access-300x191.png 300w" sizes="(max-width: 632px) 100vw, 632px" /></a><p id="caption-attachment-7325" class="wp-caption-text">Access : Create a New Form in Design View</p></div></li>
<li>It will open the new form in the design view, now add new button with the desire text.
<div id="attachment_7326" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7326" class="wp-image-7326 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button-768x459.png" alt="Access : Add Command Button" width="720" height="430" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button-768x459.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button-300x179.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button-1024x612.png 1024w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-add-access-command-button.png 1215w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7326" class="wp-caption-text">Access : Add Command Button</p></div></li>
<li>Now right click on button and go to properties and click on &#8230; builder button and select Code Builder.
<div id="attachment_7327" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-select-code-builder-access.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7327" class="wp-image-7327 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-select-code-builder-access-768x529.png" alt="Access : Code builder" width="720" height="496" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-select-code-builder-access-768x529.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-select-code-builder-access-300x207.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-select-code-builder-access.png 934w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7327" class="wp-caption-text">Access : Code builder</p></div></li>
<li>When you click the button, it will open a new VBA instance, executing the command event associated with that button click.<br />
Next, insert the provided code inside the <i>Command5_Click()</i> function. In this example, the button is named Command5, and that&#8217;s why it&#8217;s added within this click function.<br />
The provided code encompasses the following steps:</p>
<ol>
<li><strong>Ensure the table is closed:</strong><br />
It&#8217;s crucial to close the table beforehand; otherwise, executing the subsequent command may result in an error.</li>
<li><strong>Truncate the table:<br />
</strong>Clear the existing data from the table. If you want to add fresh data each time</li>
<li><strong>Make the API call:<br />
</strong>Utilize the ODBC Driver connection string to initiate an API call.</li>
<li><strong>Insert into the Access table:<br />
</strong>Use the retrieved data from the API call to insert new records into the Access table.</li>
<li><strong>Open the table:<br />
</strong>Reopen the table to inspect the newly inserted data.</li>
</ol>
<pre class="crayon-plain-tag">' Pass your ZappySys Driver Connection String: Refer to below link to learn how to obtain the ZappySys Driver connection string:
    ' https://community.zappysys.com/t/how-to-copy-the-zappysys-driver-connection-string/172
    Dim zsConnStr As String
    zsConnStr = "DRIVER={ZappySys JSON Driver};DataPath='https://services.odata.org/V3/Northwind/Northwind.svc/Customers?$format=json';Filter='$.value[*]';IncludeParentColumns=0;RequestMethod='GET';RequestHeaders='cache-control: no-cache || Accept: */*'"
        
    'ZappySys Driver Query
    Dim zsDriverQuery As String
    zsDriverQuery = "Select * from $"
 
    'MS Access Table Name
    Dim tableName As String
    tableName = "tblCustomers"

    ' 1. Close Table If Open
    CloseTableIfOpen tableName

    ' 2. Truncate Table (Optional): If you want to load fresh data each time, uncomment the line below.
    'TruncateTable tableName

    ' 3. Import Data From API Into Table
    ImportDataFromAPIIntoTable zsConnStr, zsDriverQuery, tableName

    ' 4. Open Table for Viewing (Optional)
    OpenTableForViewing tableName

    ' Show Message after Loading Data Successfully
    MsgBox "Data Loaded Successfully!"</pre>
<div id="attachment_10917" style="width: 744px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/ms-access-vba-button-onclick.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10917" class="size-full wp-image-10917" src="https://zappysys.com/blog/wp-content/uploads/2019/06/ms-access-vba-button-onclick.png" alt="ms-access-vba-button-onclick" width="734" height="809" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/ms-access-vba-button-onclick.png 734w, https://zappysys.com/blog/wp-content/uploads/2019/06/ms-access-vba-button-onclick-272x300.png 272w" sizes="(max-width: 734px) 100vw, 734px" /></a><p id="caption-attachment-10917" class="wp-caption-text">VBA Button OnClick Function</p></div>
<p>&nbsp;</li>
<li>Below the <i>Private Sub Command5_Click()</i> function, please add the necessary functions and procedures as provided below:</p><pre class="crayon-plain-tag">Sub ImportDataFromAPIIntoTable(zsConnStr As String, zsDriverQuery As String, tableName As String)
    Dim dscn As New ADODB.Connection
    dscn.Open zsConnStr

    Dim rs As Object
    Set rs = New ADODB.Recordset
    
    ''ZappySys Driver Query Goes here
    rs.Open zsDriverQuery, dscn

    Dim strQuery As String
    strQuery = ""
    ' Check if the recordset is not empty
    If Not rs.EOF Then
        ' Get the field names
        Dim fieldNames As String
        fieldNames = ""

        For i = 1 To rs.Fields.Count
            fieldNames = fieldNames &amp; rs.Fields(i - 1).Name
            If i &lt; rs.Fields.Count Then
                fieldNames = fieldNames &amp; ","
            End If
        Next i

        ' Generate the INSERT script
        Dim insertScript As String
        ' Iterate through the recordset to get the values
        Do Until rs.EOF
            ' Generate Insert script
            insertScript = "INSERT INTO " &amp; tableName &amp; " (" &amp; fieldNames &amp; ") VALUES"
            insertScript = insertScript &amp; vbCrLf &amp; "("
            For i = 1 To rs.Fields.Count
                ' Assuming all fields are text, you might need to handle different data types appropriately
                
                If IsNull(rs.Fields(i - 1).Value) Then
                    insertScript = insertScript &amp; "''"
                Else
                    insertScript = insertScript &amp; "'" &amp; EscapeSingleQuote(rs.Fields(i - 1).Value) &amp; "'"
                End If
                
                
                If i &lt; rs.Fields.Count Then
                    insertScript = insertScript &amp; ","
                End If
            Next i
            insertScript = insertScript &amp; ")"
            
            'Insert data
            CurrentProject.Connection.Execute insertScript
            
            rs.MoveNext
        Loop
    End If
    
    ' Close the recordset and connection
    rs.Close
    dscn.Close
    Set rs = Nothing
    Set conn = Nothing
    
End Sub

Sub OpenTableForViewing(tableName As String)
    If Not IsTableOpen(tableName) Then
        DoCmd.OpenTable tableName
    End If
End Sub

Public Function IsTableOpen(strName As String) As Boolean
     IsTableOpen = SysCmd(acSysCmdGetObjectState, acTable, strName)
End Function

Sub CloseTableIfOpen(tableName As String)
    If IsTableOpen(tableName) Then
        DoCmd.SelectObject acTable, tableName
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close
    End If
End Sub


Sub TruncateTable(tableName As String)
    Dim strSql As String
    strSql = "DELETE FROM " &amp; tableName &amp; ";"
    CurrentProject.Connection.Execute strSql
End Sub

Public Function EscapeSingleQuote(strData As String) As String
     EscapeSingleQuote = Replace(strData, "'", "''")
End Function</pre><p>
</li>
<li>Now, save the VBA form code and provide some appropriate form names.
<div id="attachment_7332" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7332" class="size-medium_large wp-image-7332" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form-768x943.png" alt="Save form vba code" width="720" height="884" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form-768x943.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form-244x300.png 244w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form-834x1024.png 834w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-save-form.png 849w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7332" class="wp-caption-text">Save form vba code</p></div>
<p>&nbsp;</li>
<li>Make sure to add the reference to the Microsoft ActiveX Data Objects X.0 Library in the project settings.In Microsoft Access VBA,<br />
You can add the reference to the Microsoft ActiveX Data Objects X.0 Library by following these steps:</p>
<ol>
<li>In the VBA editor, go to &#8220;Tools&#8221; in the menu and select &#8220;References.&#8221;</li>
<li>In the References dialog box, scroll down the list to find &#8220;Microsoft ActiveX Data Objects X.0 Library&#8221; (where &#8220;X.0&#8221; corresponds to the version number, such as 6.1, 2.8, etc.).</li>
<li>Check the box next to the appropriate version to enable the reference.</li>
<li>Click &#8220;OK&#8221; to save the changes and close the References dialog box.</li>
</ol>
<p>Now, your Access project has a reference to the Microsoft ActiveX Data Objects library, and you can use its features in your VBA code.</p>
<div id="attachment_7336" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-add-reference.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7336" class="size-medium_large wp-image-7336" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-add-reference-768x648.png" alt="Access : Add reference" width="720" height="608" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-add-reference-768x648.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-add-reference-300x253.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-add-reference.png 804w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7336" class="wp-caption-text">Access : Add reference</p></div>
<p>If the MS ActiveX reference is not added, an error will be thrown.</p>
<div id="attachment_7335" style="width: 721px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-error-type-not-found.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7335" class="wp-image-7335 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-error-type-not-found-e1705479944324.png" alt="VBA : Error Type not defined" width="711" height="797" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-error-type-not-found-e1705479944324.png 711w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-vba-error-type-not-found-e1705479944324-268x300.png 268w" sizes="(max-width: 711px) 100vw, 711px" /></a><p id="caption-attachment-7335" class="wp-caption-text">VBA : Error Type not defined</p></div></li>
<li>Close the code project, open the form in Form View, and click on the button.
<div id="attachment_7333" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-click-button.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7333" class="size-medium_large wp-image-7333" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-click-button-768x705.png" alt="Access : Click Command Button" width="720" height="661" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-click-button-768x705.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-click-button-300x275.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-click-button.png 939w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7333" class="wp-caption-text">Access : Click Command Button</p></div></li>
<li>After clicking the button, it will initiate a REST API call, insert the data into the Access table, and open the table to display the inserted records along with a success message.
<div id="attachment_7334" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-code-success-message.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7334" class="size-medium_large wp-image-7334" src="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-code-success-message-768x705.png" alt="Access : Open the table" width="720" height="661" srcset="https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-code-success-message-768x705.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-code-success-message-300x275.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/06/odbc-access-code-success-message.png 939w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-7334" class="wp-caption-text">Access : Open the table</p></div></li>
</ol>
<div class="content_block" id="custom_post_widget-8935"><h2>Troubleshooting Errors</h2>
<p>While running in Access\Excel\other and reading data from DSN created with ODBC PowerPack, if you get this error "<strong>License type [ODBC_PP_TRIAL] not found or its expired</strong>"</p>

<p>Please refer to this article for the same:  <a href="https://zappysys.zendesk.com/hc/en-us/articles/360042521533-Troubleshooting-License-type-ODBC-PP-TRIAL-not-found-or-its-expired-error-in-Microsoft-Access" target="_blank" rel="noopener">Troubleshooting "License type [ODBC_PP_TRIAL] not found or its expired" error in Microsoft Access</a></p></div>
<h2><span id="Conclusion">Conclusion</span></h2>
<p>In this article, we saw how to use VBA to call REST API. We show how to do REST API calls in Access using the ZappySys ODBC driver. Also, we show how to write VBA Code in MS Access for command button to make REST API call, truncate access table and insert record in the access table using VBA code. If you liked this article and you want to try, you can download the <a href="https://zappysys.com/products/odbc-powerpack/download/" target="_blank" rel="noopener">ZappySys ODBC installer here</a>.</p>
<h2><span id="References">References</span></h2>
<ul>
<li><a href="https://zappysys.com/products/odbc-powerpack/download/" target="_blank" rel="noopener">ZappySys ODBC installer.</a></li>
<li><a href="https://stackoverflow.com/questions/49984642/access-odbc-query" target="_blank" rel="noopener">Access ODBC Query</a></li>
<li><a href="https://docs.microsoft.com/en-us/sql/ado/guide/appendixes/using-ado-with-microsoft-visual-basic?view=sql-server-2017" target="_blank" rel="noopener">Using ADO with Microsoft Visual Basic and Visual Basic for Applications</a></li>
</ul>
<h2>
Form VBA Code:</h2>
<p>After completing the migration of the higher-level VBA code, you&#8217;ll notice a transformation in the structure of your forms&#8217; code.</p><pre class="crayon-plain-tag">Option Compare Database

Private Sub Command5_Click()
 
    ' Pass your ZappySys Driver Connection String: Refer to below link to learn how to obtain the ZappySys Driver connection string:
    ' https://community.zappysys.com/t/how-to-copy-the-zappysys-driver-connection-string/172
    Dim zsConnStr As String
    zsConnStr = "DRIVER={ZappySys JSON Driver};DataPath='https://services.odata.org/V3/Northwind/Northwind.svc/Customers?$format=json';Filter='$.value[*]';IncludeParentColumns=0;RequestMethod='GET';RequestHeaders='cache-control: no-cache || Accept: */*'"
        
    'ZappySys Driver Query
    Dim zsDriverQuery As String
    zsDriverQuery = "Select * from $"
 
    'MS Access Table Name
    Dim tableName As String
    tableName = "tblCustomers"

    ' 1. Close Table If Open
    CloseTableIfOpen tableName

    ' 2. Truncate Table (Optional): If you want to load fresh data each time, uncomment the line below.
    'TruncateTable tableName

    ' 3. Import Data From API Into Table
    ImportDataFromAPIIntoTable zsConnStr, zsDriverQuery, tableName

    ' 4. Open Table for Viewing (Optional)
    OpenTableForViewing tableName

    ' Show Message after Loading Data Successfully
    MsgBox "Data Loaded Successfully!"
    
End Sub

Sub ImportDataFromAPIIntoTable(zsConnStr As String, zsDriverQuery As String, tableName As String)
    Dim dscn As New ADODB.Connection
    dscn.Open zsConnStr

    Dim rs As Object
    Set rs = New ADODB.Recordset
    
    ''ZappySys Driver Query Goes here
    rs.Open zsDriverQuery, dscn

    Dim strQuery As String
    strQuery = ""
    ' Check if the recordset is not empty
    If Not rs.EOF Then
        ' Get the field names
        Dim fieldNames As String
        fieldNames = ""

        For i = 1 To rs.Fields.Count
            fieldNames = fieldNames &amp; rs.Fields(i - 1).Name
            If i &lt; rs.Fields.Count Then
                fieldNames = fieldNames &amp; ","
            End If
        Next i

        ' Generate the INSERT script
        Dim insertScript As String
        ' Iterate through the recordset to get the values
        Do Until rs.EOF
            ' Generate Insert script
            insertScript = "INSERT INTO " &amp; tableName &amp; " (" &amp; fieldNames &amp; ") VALUES"
            insertScript = insertScript &amp; vbCrLf &amp; "("
            For i = 1 To rs.Fields.Count
                ' Assuming all fields are text, you might need to handle different data types appropriately
                
                If IsNull(rs.Fields(i - 1).Value) Then
                    insertScript = insertScript &amp; "''"
                Else
                    insertScript = insertScript &amp; "'" &amp; EscapeSingleQuote(rs.Fields(i - 1).Value) &amp; "'"
                End If
                
                
                If i &lt; rs.Fields.Count Then
                    insertScript = insertScript &amp; ","
                End If
            Next i
            insertScript = insertScript &amp; ")"
            
            'Insert data
            CurrentProject.Connection.Execute insertScript
            
            rs.MoveNext
        Loop
    End If
    
    ' Close the recordset and connection
    rs.Close
    dscn.Close
    Set rs = Nothing
    Set conn = Nothing
    
End Sub

Sub OpenTableForViewing(tableName As String)
    If Not IsTableOpen(tableName) Then
        DoCmd.OpenTable tableName
    End If
End Sub

Public Function IsTableOpen(strName As String) As Boolean
     IsTableOpen = SysCmd(acSysCmdGetObjectState, acTable, strName)
End Function

Sub CloseTableIfOpen(tableName As String)
    If IsTableOpen(tableName) Then
        DoCmd.SelectObject acTable, tableName
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close
    End If
End Sub


Sub TruncateTable(tableName As String)
    Dim strSql As String
    strSql = "DELETE FROM " &amp; tableName &amp; ";"
    CurrentProject.Connection.Execute strSql
End Sub

Public Function EscapeSingleQuote(strData As String) As String
     EscapeSingleQuote = Replace(strData, "'", "''")
End Function</pre><p>
&nbsp;</p>
<h2></h2>
<p>The post <a href="https://zappysys.com/blog/export-rest-api-ms-access-using-vba-command-button/">How to Export REST API to MS Access using VBA Command Button</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read WordPress data using SSIS REST API Call</title>
		<link>https://zappysys.com/blog/read-wordpress-data-using-ssis-rest-api-call/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Sat, 11 May 2019 06:22:31 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=6917</guid>

					<description><![CDATA[<p>Introduction In this post you will learn how to Read WordPress data using SSIS REST API Call (Drag and drop approach without any coding).  We will use SSIS JSON/ REST API Source to extract data from WordPress API. In this blog we will see how to get all WordPress Posts, Pages and Categories using JSON Source and [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-wordpress-data-using-ssis-rest-api-call/">Read WordPress data using SSIS REST API Call</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2019/05/WordPress_logo.png"><img loading="lazy" decoding="async" class="alignleft wp-image-6919 " src="https://zappysys.com/blog/wp-content/uploads/2019/05/WordPress_logo-150x150.png" alt="WordPress" width="110" height="110" srcset="https://zappysys.com/blog/wp-content/uploads/2019/05/WordPress_logo-150x150.png 150w, https://zappysys.com/blog/wp-content/uploads/2019/05/WordPress_logo-300x300.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/05/WordPress_logo.png 500w" sizes="(max-width: 110px) 100vw, 110px" /></a>In this post you will learn how to Read WordPress data using SSIS REST API Call (Drag and drop approach without any coding).  We will use <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">SSIS JSON/ REST API Source</a> to extract data from WordPress API. In this blog we will see how to get all WordPress Posts, Pages and Categories using JSON Source and load it into the SQL Server.</p>
<p>Now let&#8217;s look at step by step approach to call WordPress REST API.</p>
<h2></h2>
<h2>Prerequisite</h2>
<ol>
<li>First, you will need to have SSIS installed</li>
<li>Secondly, make sure to have SSDT</li>
<li>Thirdly, You have obtained WordPress account credential with read and write permission.</li>
<li>Finally, do not forget to install <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a></li>
</ol>
<h2>What is WordPress</h2>
<p>WordPress is a free and open-source content management system based on PHP &amp; MySQL. Features include a plugin architecture and a template system. It is most associated with blogging but supports other types of web content including more traditional mailing lists and forums, media galleries, and online stores.</p>
<h2>Read data from WordPress using SSIS JSON Source</h2>
<p>Let&#8217;s start with an example. We use SSIS JSON Source Task to make call to WordPress API, we will load WordPress Pages data to SQL Server.</p>
<h3>Get all Posts, Pages and Categories using WordPress API</h3>
<ol>
<li>First of All, Drag and drop Data Flow Task from SSIS Toolbox and double click it to edit.<img class="yoast-text-mark" /><a href="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-drag-drop-data-flow-task.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-7934 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-drag-drop-data-flow-task.png" alt="Drag and Drop SSIS Data Flow Task from SSIS Toolbox" width="460" height="155" srcset="https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-drag-drop-data-flow-task.png 460w, https://zappysys.com/blog/wp-content/uploads/2019/09/ssis-drag-drop-data-flow-task-300x101.png 300w" sizes="(max-width: 460px) 100vw, 460px" /></a></li>
<li>Furthermore, Drag and Drop JSON Source(REST API and File) File Task from the SSIS Toolbox.<img class="yoast-text-mark" />
<div id="attachment_3766" style="width: 604px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/05/ssis-json-source-for-getting-basic-profile-from-linkedin.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3766" class="size-full wp-image-3766" src="https://zappysys.com/blog/wp-content/uploads/2018/05/ssis-json-source-for-getting-basic-profile-from-linkedin.png" alt="Drag and Drop JSON Source Component" width="594" height="268" srcset="https://zappysys.com/blog/wp-content/uploads/2018/05/ssis-json-source-for-getting-basic-profile-from-linkedin.png 594w, https://zappysys.com/blog/wp-content/uploads/2018/05/ssis-json-source-for-getting-basic-profile-from-linkedin-300x135.png 300w" sizes="(max-width: 594px) 100vw, 594px" /></a><p id="caption-attachment-3766" class="wp-caption-text">Drag and Drop JSON Source Component</p></div></li>
<li>Double click on that Component to Edit the Configurations. Select File path or web URL from the Access Mode drop-down.<br />
Enter Web URL like this to Get all <strong>Pages. </strong>Please refer to this link of <a href="https://developer.wordpress.org/rest-api/reference/" target="_blank" rel="noopener">WordPress API</a> for more information.<br />
<pre class="crayon-plain-tag">https://{{your-wordpress-domain}}/wp-json/wp/v2/pages?page=1&amp;per_page=100</pre>
To Get all <strong>Posts</strong><br />
<pre class="crayon-plain-tag">https://{{your-wordpress-domain}}/wp-json/wp/v2/posts?page=1&amp;per_page=100</pre>
To Get all <strong>Categories</strong><br />
<pre class="crayon-plain-tag">https://{{your-wordpress-domain}}/wp-json/wp/v2/categories?page=1&amp;per_page=100</pre>
Here, <strong>your-wordpress-domain </strong>is your WordPress site domain name (here we are using our zappysys.com wordpress site)<strong>.</strong></p>
<p><strong>* page</strong> is the index of the first item returned in the page of results.<br />
<strong>* per_page</strong> the maximum number of items that can be returned per page. Each API endpoint may have a different limit for the number of items returned, and these limits may change without notice. (For more See this <a href="https://developer.wordpress.org/rest-api/using-the-rest-api/pagination/" target="_blank" rel="noopener">WordPress API Documentation for Pagination</a>)</p>
<div id="attachment_6924" style="width: 704px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-set-url-json-source.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6924" class="wp-image-6924 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-set-url-json-source.png" alt="Set URL in JSON Source" width="694" height="724" srcset="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-set-url-json-source.png 694w, https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-set-url-json-source-288x300.png 288w" sizes="(max-width: 694px) 100vw, 694px" /></a><p id="caption-attachment-6924" class="wp-caption-text">Set URL in JSON Source</p></div></li>
<li>Check Use Credentials Option and select a new ZS-HTTP Connection from the drop-down.</li>
<li>Configure new HTTP Connection for WordPress as below.<br />
Basically, you need to enter 3 pieces on the General tab (i.e. WordPress Site URL, UserName and Password)</p>
<div id="attachment_4330" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4330" class="wp-image-4330 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection-768x376.png" alt="JIRA Connection: HTTP Connection Manager" width="720" height="353" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection-768x376.png 768w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection-300x147.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection-1024x502.png 1024w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-json-source-http-jira-connection.png 1496w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-4330" class="wp-caption-text">WordPress Connection: HTTP Connection Manager</p></div></li>
<li>Likewise, we are going to set Pagination related configurations for WordPress API request. For example, if you want to read 100 records in each response and keep doing it until last page found then set <b>Page=1, Per_page=100 and Increment by 1</b>.
<div id="attachment_6926" style="width: 730px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-pagination-json-source.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6926" class="wp-image-6926 size-medium_large" src="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-pagination-json-source-768x786.png" alt="JSON Source – WordPress request Pagination Configurations Settings" width="720" height="737" srcset="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-pagination-json-source-768x786.png 768w, https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-pagination-json-source-293x300.png 293w, https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-pagination-json-source.png 786w" sizes="(max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-6926" class="wp-caption-text">JSON Source – WordPress request Pagination Configurations Settings</p></div></li>
<li>Select the desire Filter and click on Preview button to see the response data.
<div id="attachment_6927" style="width: 710px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-preview-json-source.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6927" class="wp-image-6927 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/05/ssis-wordpress-preview-json-source-e1557565619232.png" alt="JSON Source: Preview WordPress Data" width="700" height="468" /></a><p id="caption-attachment-6927" class="wp-caption-text">JSON Source: Preview WordPress Data</p></div></li>
<li>Finally, click OK to save JSON Source settings.</li>
<li>That’s it we are ready to load WordPress data to SQL Server.</li>
</ol>
<h3>Load WordPress data into SQL Server</h3>
<div class="content_block" id="custom_post_widget-5617"><p>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 <strong>Upsert Destination</strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.</p>
<h3>Step 1: Add Upsert Destination to Data Flow</h3>
<ol>
<li>Drag and drop the <strong>Upsert Destination</strong> component from the SSIS Toolbox.</li>
<li>Connect your source component (e.g., JSON / REST / Other Source) to the Upsert Destination.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2017/08/ssis-data-flow-drag-drop-upsert-destination.png" /></a>
<p class="wp-caption-text">SSIS - Data Flow - Drang and Drop Upsert Destination Component</p>
</div>
<h3>Step 2: Configure Target Connection</h3>
<ol>
<li>Double-click the <strong>Upsert Destination</strong> component to open the configuration window.</li>
<li>Under <strong>Connection</strong>, select an existing target connection or click <strong>NEW</strong> to create a new connection.
<ul>
<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.</li>
</ul>
</li>
</ol>
<h3>Step 3: Select or Create Target Table</h3>
<ol>
<li>In the <strong>Target Table</strong> dropdown, select the table where you want to load data.</li>
<li>Optionally, click <strong>NEW</strong> to create a new table based on the source columns.</li>
</ol>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-configuration.png" /></a>
<p class="wp-caption-text">Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS</p>
</div>
<h3>Step 4: Map Columns</h3>
<ol>
<li>Go to the <strong>Mappings</strong> tab.</li>
<li>Click <strong>Auto Map</strong> to map source columns to target columns by name.</li>
<li>Ensure you <strong>check the Primary key column(s)</strong> that will determine whether a record is inserted or updated.</li>
<li>You can manually adjust the mappings if necessary.</li>
</ol>
 <div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2020/09/upsert-destination-key.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination - Columns Mappings</p>
</div>
<h3>Step 5: Save Settings</h3>
<ul>
<li>Click <strong>OK</strong> to save the Upsert Destination configuration.</li>
</ul>
<h3>Step 6: Optional: Add Logging or Analysis</h3>
<ul>
<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.</li>
</ul>
<h3>Step 7: Execute the Package</h3>
<ul>
<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.</li>
</ul>
<div class="wp-caption aligncenter">
<a href="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png">
<img loading="lazy" decoding="async" class="size-full" alt="" src="https://zappysys.com/blog/wp-content/uploads/2018/12/ssis-upsert-destination-execute.png" /></a>
<p class="wp-caption-text">SSIS Upsert Destination Execution</p>
</div></div>
<h2><span id="Conclusion">Conclusion</span></h2>
<p>In this post you have seen how easy it is to Read WordPress data using SSIS REST API Call in few clicks. We used <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON Source Component</a> to call WordPress REST API and load data into SQL server. You can <a href="https://zappysys.com/products/ssis-powerpack/">download SSIS PowerPack here</a> to try many other scenarios not discussed in this blog along with 70+ other components.</p>
<h2><span id="References">References</span></h2>
<p>Finally, you can use the following links for more information about the use of WordPress REST API with our tools:</p>
<ul>
<li><a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON Source</a>, you can also find <a href="https://youtu.be/t4fSghbSZLo" target="_blank" rel="noopener">Tutorial Video</a> here.</li>
<li><strong>Help File:</strong> Documentation of <a href="https://zappysys.com/onlinehelp/ssis-powerpack/index.htm#page=json-source.htm" target="_blank" rel="noopener">SSIS Json Source</a></li>
<li><a href="https://developer.wordpress.org/rest-api/reference/" target="_blank" rel="noopener">WordPress API</a></li>
<li><a href="https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/" target="_blank" rel="noopener">WP API Authentication</a></li>
<li><a href="https://developer.wordpress.org/rest-api/using-the-rest-api/pagination/" target="_blank" rel="noopener">WP API Pagination</a></li>
</ul>
<p>The post <a href="https://zappysys.com/blog/read-wordpress-data-using-ssis-rest-api-call/">Read WordPress data using SSIS REST API Call</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read data from QuickBooks Online into SQL Server via ODBC Driver</title>
		<link>https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 23 Jan 2019 12:12:20 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[T-SQL (SQL Server)]]></category>
		<category><![CDATA[json driver]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[oauth2]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[odbc json driver]]></category>
		<category><![CDATA[quickbooks]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=5133</guid>

					<description><![CDATA[<p>Introduction QuickBooks Online is a well-known Cloud-based Accounting Software. In this post, you will learn how to implement QuickBooks Online API Integration with SQL Server or any other RDBMS (e.g. Oracle, MySQL, Postgresql) using ODBC in few clicks. We will use ODBC JSON / REST API Driver to read data from QuickBooks Online and Load into SQL Server / other targets (Using OAuth [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/">Read data from QuickBooks Online into SQL Server via ODBC Driver</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/QuickBookLogo.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignleft wp-image-6399 " src="https://zappysys.com/blog/wp-content/uploads/2019/01/QuickBookLogo.png" alt="QuickBooks Online Logo" width="164" height="164" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/QuickBookLogo.png 225w, https://zappysys.com/blog/wp-content/uploads/2019/01/QuickBookLogo-150x150.png 150w" sizes="(max-width: 164px) 100vw, 164px" /></a>QuickBooks Online is a well-known Cloud-based Accounting Software. In this post, you will learn how to implement <a href="https://developer.intuit.com/docs/00_quickbooks_online/1_get_started/00_get_started" target="_blank" rel="noopener">QuickBooks Online API</a> Integration with SQL Server or any other RDBMS (e.g. Oracle, MySQL, Postgresql) using <strong>ODBC</strong> in few clicks. We will use <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a> to read data from QuickBooks Online and Load into SQL Server / other targets (Using OAuth Connection). We will discuss on How to Create an Intuit Developer Account, How to Create QuickBooks Online App for OAuth.</p>
<p>In nutshell, this post will focus on how to call QuickBooks Online API using ODBC.<br />
So let’s get started.</p>
<p>&nbsp;</p>
<h2><span id="Prerequisites">Prerequisites</span></h2>
<p>Before we look into Step-By-Step section to extract and read data from <strong>QuickBooks Online to SQL Server</strong> let’s make sure you met the following requirements.</p>
<ol>
<li>A first requirement will be to SQL Server Database Engine Installed</li>
<li>The second requirement will be SSMS installed</li>
<li>Finally, make sure to have <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ZappySys ODBC PowerPack</a> installed.</li>
</ol>
<div class="content_block" id="custom_post_widget-6478"><h2>What is QuickBooks Online</h2>
<b>QuickBooks</b> is an accounting software package developed and marketed by Intuit. QuickBooks products are geared mainly toward small and medium-sized businesses and offer on-premises accounting applications as well as cloud-based versions that accept business payments, manage and pay bills, and payroll functions.
<h2>Getting Started</h2>
In order to start, we will show several examples. ZappySys includes an <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a> that will help you to call QuickBooks Online API, read various data from QuickBooks Online with ODBC. To learn more about QuickBooks Online API <a href="https://developer.intuit.com/docs/00_quickbooks_online/1_get_started/00_get_started" target="_blank" rel="noopener">check this help file</a>.

To access QuickBooks Online data using REST API call, you need to create an Intuit Developer Account and then create QuickBooks Online App.
<h3>Create an Intuit Developer Account</h3>
Follow the mentioned steps below to create an Intuit developer account:
<ol>
 	<li>you can visit this site <a class="link-https" title="https://developer.intuit.com" href="https://developer.intuit.com/" target="_blank" rel="noopener">developer.intuit.com</a>, and click on Sign up from the menu bar.</li>
 	<li>A registration form will be opened in a Popup. you can fill up and then click on Create Account.
<div class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2018/09/intuit-developer-account-signup-page-e1551710928190.png" target="_blank" rel="noopener"><img decoding="async" src="https://zappysys.com/blog/wp-content/uploads/2018/09/intuit-developer-account-signup-page-e1551710928190.png" alt="Signup Form: Intuit Developer Account" /></a>
<p class="wp-caption-text">Signup Form: Intuit Developer Account</p>

</div></li>
 	<li>Complete the validation check and click <strong>Continue</strong>.</li>
 	<li>On the confirmation dialog, provide a few details to fill out your profile and click <strong>All set</strong>.</li>
</ol>
<div class="locale-US style-wrap">

Your account is created! You'll automatically be redirected to the <a title="3. Create an app" href="https://developer.intuit.com/docs/00_quickbooks_online/1_get_started/30_create_an_app" target="_blank" rel="internal noopener">app creation page</a> to get coding on your app.
<div class="su-note-inner su-clearfix" style="background-color: #fff4b7;border-color: #fffdf1;color: #333333;padding: 8px">

<strong>Note:</strong>

Choose the user ID of your account carefully. Once an app is created in a given account it cannot be moved to another account or deleted. If you are building apps for a client, we recommend you create a dedicated account for that client that stays with them, leaving them full access.

</div>
<h3>Create a QuickBooks Online App</h3>
Follow the steps below to start creating your QuickBooks Online app.
<ol>
 	<li>From the <a class="link-https" title="https://developer.intuit.com" href="https://developer.intuit.com/" target="_blank" rel="external nofollow noopener">developer</a> portal, click on <strong>My Apps</strong>.</li>
 	<li>after that, Click <strong>Create a new app.
</strong>
<div class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2018/09/create-new-app-intuit-e1551711044554.png" target="_blank" rel="noopener"><img decoding="async" src="https://zappysys.com/blog/wp-content/uploads/2018/09/create-new-app-intuit-e1551711044554.png" alt="Create new App: Select APIS" /></a>
<p class="wp-caption-text">Create a new App: Select APIS</p>

</div></li>
 	<li>Click the <strong>Select APIs</strong> button under Just start coding.</li>
 	<li>Select the APIs you wish to use. This selection can always be changed later via your <a title="Configure app settings" href="https://developer.intuit.com/docs/00_quickbooks_online/4_go_live/30_publish_to_app_store/45_configure_app_settings" target="_blank" rel="internal noopener">app's settings</a>.</li>
 	<li>Your new app opens to its Dashboard tab.</li>
 	<li>Click the <strong>Keys</strong> tab. This is where you can find all keys related to your app.
<div class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2018/09/intuit-myapps-credentials-for-oauth2-e1551711138195.png" target="_blank" rel="noopener"><img decoding="async" src="https://zappysys.com/blog/wp-content/uploads/2018/09/intuit-myapps-credentials-for-oauth2-e1551711138195.png" alt="Intuit App: Client Id,Secret Keys for OAuth Connection" /></a>
<p class="wp-caption-text">Intuit App: Client Id, Secret Keys for OAuth Connection</p>

</div></li>
 	<li>To copy a key or token, click its <strong>Copy</strong> button.</li>
</ol>
Finally, we are ready with an App. Let´s start with an example. In this example, we will show how to retrieve all Invoices data from QuickBooks Online with ODBC.

</div></div>
<h3><span id="Create_ODBC_Native_Zappysys_JSON_Driver_Data_Source"><span id="Create_ODBC_DSN_8211_JSON_Driver">Create ODBC – Native Zappysys JSON Driver Data Source</span></span></h3>
<ol>
<li>To do this, first of all, we will open the ZappySys Data Gateway Configuration:
<div id="attachment_5283" style="width: 410px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5283" class="wp-image-5283 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png" alt="Open ZappySys Data Gateway" width="400" height="315" srcset="https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway.png 400w, https://zappysys.com/blog/wp-content/uploads/2018/11/start-menu-open-zappysys-data-gateway-300x236.png 300w" sizes="(max-width: 400px) 100vw, 400px" /></a><p id="caption-attachment-5283" class="wp-caption-text">Open ZappySys Data Gateway</p></div></li>
<li>Add the Native &#8211; ZappySys JSON Driver Data source.
<div id="attachment_5284" style="width: 568px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5284" class="wp-image-5284 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source.png" alt="Add Gateway Data Source (Native JSON Driver)" width="558" height="533" srcset="https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source.png 558w, https://zappysys.com/blog/wp-content/uploads/2018/11/zappysys-data-gateway-add-data-source-300x287.png 300w" sizes="(max-width: 558px) 100vw, 558px" /><p id="caption-attachment-5284" class="wp-caption-text">Add Gateway Data Source (Native JSON Driver)</p></div></li>
<li>Now it&#8217;s time to connect with QuickBooks. Let&#8217;s use JSON Driver Data source with the following URL:<br />
<pre class="crayon-plain-tag">https://{RequestURL}/v3/company/{realmID}/query?query={selectStatement}</pre>
here, We have used 3 placeholders<strong>.<br />
* {RequestURL}</strong>is either a SandBox base URL or Production base URL.<br />
<pre class="crayon-plain-tag">Sandbox Base URL: https://sandbox-quickbooks.api.intuit.com
Production Base URL: https://quickbooks.api.intuit.com</pre>
* <strong>{realmID} </strong>is your QuickBooks Online sandbox/production <strong>company ID</strong>.<br />
* <strong>{selectStatement} </strong>can be any query something like <strong>Select * From Invoice (*Note: select statement must be URL encoded first)<br />
For more information on Query, an Invoice Request API <a href="https://developer.intuit.com/docs/api/accounting/invoice">see this</a><br />
</strong>I am using my sandbox URL like this:<br />
<pre class="crayon-plain-tag">https://sandbox-quickbooks.api.intuit.com/v3/company/193514799372394/query?query=SELECT * FROM Invoice STARTPOSITION &lt;%startposition%&gt; MAXRESULTS 1000</pre>
<div id="attachment_10598" style="width: 666px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/reading-data-from-intuit-quickbooks-via-odbc-driver-2/#main"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10598" class="wp-image-10598 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/Reading-data-from-Intuit-QuickBooks-via-ODBC-driver-1.png" alt="" width="656" height="806" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/Reading-data-from-Intuit-QuickBooks-via-ODBC-driver-1.png 656w, https://zappysys.com/blog/wp-content/uploads/2019/01/Reading-data-from-Intuit-QuickBooks-via-ODBC-driver-1-244x300.png 244w" sizes="(max-width: 656px) 100vw, 656px" /></a><p id="caption-attachment-10598" class="wp-caption-text">Setup QuickBooks ODBC-based data source configuration</p></div></li>
<li>Configure the new OAuth Connection for <strong>QuickBooks Online</strong> as below.<br />
Basically, you need to configure the configurations of App on the General tab (i.e. OAuth Provider, Client ID, Client Secret, Scopes, etc.)</p>
<div id="attachment_4776" style="width: 781px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-quickbooks-online-using-ssis/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-general-tab/#main" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4776" class="wp-image-4776 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-general-tab.png" alt="SSIS OAuth Connection Manager: General Tab Configurations" width="771" height="697" srcset="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-general-tab.png 771w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-general-tab-300x271.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-general-tab-768x694.png 768w" sizes="(max-width: 771px) 100vw, 771px" /></a><p id="caption-attachment-4776" class="wp-caption-text">OAuth Connection Manager: General Tab Configurations</p></div></li>
<li>Most importantly, you also need to Enter your Callback URL in Advanced Tab.
<div id="attachment_4777" style="width: 781px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-quickbooks-online-using-ssis/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-advanced-tab/#main" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4777" class="wp-image-4777 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-advanced-tab.png" alt="SSIS OAuth Connection Manager: Advanced Tab Configurations" width="771" height="697" srcset="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-advanced-tab.png 771w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-advanced-tab-300x271.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-advanced-tab-768x694.png 768w" sizes="(max-width: 771px) 100vw, 771px" /></a><p id="caption-attachment-4777" class="wp-caption-text">OAuth Connection Manager: Advanced Tab Configurations</p></div></li>
<li>Similarly, you need to check &#8220;<strong>Do not include credentials in header</strong>&#8221;
<div id="attachment_4778" style="width: 781px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-quickbooks-online-using-ssis/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-oauth-2-grant-options-tab/#main" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4778" class="wp-image-4778 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-oauth-2-grant-options-tab.png" alt="SSIS OAuth Connection Manager: OAuth2 Grant Options Tab Configurations" width="771" height="697" srcset="https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-oauth-2-grant-options-tab.png 771w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-oauth-2-grant-options-tab-300x271.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/09/ssis-oauth-connection-manager-for-intuit-quickbooks-online-api-oauth-2-grant-options-tab-768x694.png 768w" sizes="(max-width: 771px) 100vw, 771px" /></a><p id="caption-attachment-4778" class="wp-caption-text">OAuth Connection Manager: OAuth2 Grant Options Tab Configurations</p></div></li>
<li>Click on Generate Token button to Generate token and then click on Test Connection button and click on OK to save the connection manager configurations settings.
<div id="attachment_6415" style="width: 781px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/odbc-quickbooks-oauth-test/#main" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6415" class="wp-image-6415 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-quickbooks-oauth-test.png" alt="" width="771" height="738" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-quickbooks-oauth-test.png 771w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-quickbooks-oauth-test-300x287.png 300w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-quickbooks-oauth-test-768x735.png 768w" sizes="(max-width: 771px) 100vw, 771px" /></a><p id="caption-attachment-6415" class="wp-caption-text">Generate Token and Test Connection</p></div></li>
<li>Let&#8217;s continue on, and enable pagination by configuring it like in the image below in the <em>Pagination</em> tab. In the <em>Page Num Indicator</em> field input this value: <code>&lt;%startposition%&gt;</code> Then set <em>Increment By</em> value to a maximum number of results possible: <code>1000</code><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/Pagination-reading-data-from-Intuit-QuickBooks-via-ODBC-driver.png"><br />
</a></p>
<div id="attachment_10595" style="width: 668px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/pagination-reading-data-from-intuit-quickbooks-via-odbc-driver/#main"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10595" class="wp-image-10595 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/Pagination-reading-data-from-Intuit-QuickBooks-via-ODBC-driver.png" alt="" width="658" height="508" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/Pagination-reading-data-from-Intuit-QuickBooks-via-ODBC-driver.png 658w, https://zappysys.com/blog/wp-content/uploads/2019/01/Pagination-reading-data-from-Intuit-QuickBooks-via-ODBC-driver-300x232.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></a><p id="caption-attachment-10595" class="wp-caption-text">Configuring pagination to get QuickBooks all rows in ODBC JSON-based driver data source</p></div></li>
<li>Finally, now using Code Generator we will generate the query.
<div id="attachment_6416" style="width: 766px" class="wp-caption aligncenter"><a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/odbc-json-driver-generate-quickbooks-query/#main" rel="noopener"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6416" class="wp-image-6416 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png" alt="odbc-json-driver-generate-quickbooks-query" width="756" height="432" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query.png 756w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc-json-driver-generate-quickbooks-query-300x171.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></a><p id="caption-attachment-6416" class="wp-caption-text">Generate Query</p></div></li>
</ol>
<h3>Load QuickBooks Invoices data in MS SQL Server</h3>
<div class="content_block" id="custom_post_widget-6457">Once you configured the data source in Gateway, we can now setup Linked Server in SQL Server to query API data.
<ol style="margin-left: 10px;">
 	<li>Assuming you have installed SQL Server and SSMS. If not then get both for FREE from here: <a href="https://www.microsoft.com/en-us/sql-server/sql-server-editions-express" target="_blank" rel="noopener">Get SQL Server Express</a> and  <a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms" target="_blank" rel="noopener">Get SSMS</a></li>
 	<li>Open SSMS and connect to SQL Server.</li>
 	<li>Go to Root &gt; Server Objects &gt; Linked Servers node. Right click and click <strong>New Linked Server...</strong>
<div class="wp-caption alignnone">

<a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-linked-server-ssms.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" src="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2018/03/create-new-linked-server-ssms.png?w=720&amp;ssl=1" alt="Add Linked Server in SQL Server" width="420" height="262" /></a>
<p class="wp-caption-text">Add Linked Server in SQL Server</p>

</div></li>
 	<li> Now enter the linked server name, select Provider as SQL Native Client</li>
 	<li>Enter data source as <strong><span class="lang:default decode:true crayon-inline">GatewayServerName, PORT_NUMBER</span></strong> where server name is where ZappySys Gateway is running (Can be same as SQL Server machine or remote machine). Default PORT_NUMBER is 5000 but confirm on Data gateway &gt; General tab in case its different.</li>
 	<li>Enter Catalog Name. This must match name from Data gateway Data sources grid &gt; Name column
<div class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/11/ssms-sql-server-configure-linked-server-2.png">
<img decoding="async" src="https://zappysys.com/blog/wp-content/uploads/2018/11/ssms-sql-server-configure-linked-server-2.png" alt="Configure Linked Server Provider, Catalog, Server, Port for ZappySys Data Gateway Connection" />
</a>
<p class="wp-caption-text">Configure Linked Server Provider, Catalog, Server, Port for ZappySys Data Gateway Connection</p>
</div>
<div style="color: #31708f;background-color: #d9edf7;border-color: #bce8f1;padding: 15px;margin-bottom: 20px;border: 1px solid transparent;border-radius: 4px;">
<strong>INFO:</strong><br/>
<ul>
    <li>
      For <strong>SQL Server 2012, 2014, 2016, 2017, and 2019</strong>, use the <em>SQL Server Native Client 11.0</em> as the Provider.
    </li>
    <li>
      For <strong>SQL Server 2022 or higher</strong>, use the <em>Microsoft OLE DB Driver for SQL Server</em> as the Provider.
    </li>
  </ul>
</div></li>
 	<li>Click on Security Tab and select last option "<strong>Be made using this security context</strong>". Enter your gateway user account here.</li>
<li>
        <p>Optional: Under the Server Options Tab, Enable <b>RPC</b> and <b>RPC Out</b> and Disable Promotion of Distributed Transactions<b>(MSDTC)</b>.</p>
		<div class="wp-caption alignnone">
			<img decoding="async" class="block margin-bottom-10 img-thumbnail" src="https://zappysys.com/blog/wp-content/uploads/2018/11/linked-server-options-rpc-msdtc.png" title="RPC and MSDTC Settings" alt="RPC and MSDTC Settings" />
			<p class="wp-caption-text">RPC and MSDTC Settings</p>
		</div>
        <hr />
        <p>
            You need to enable RPC Out if you plan to use <b><i>EXEC(...) AT [MY_LINKED_SERVER_NAME]</i></b> rather than OPENQUERY.
            <br />
            If don't enabled it, you will encounter the <i>'Server "MY_LINKED_SERVER_NAME" is not configured for RPC'</i> error.
        </p>
        <p>
            Query Example:
            <code class="sql">EXEC('Select * from Products') AT [MY_LINKED_SERVER_NAME]</code>
        </p>
        <hr />
        <p>
            If you plan to use <b><i>'INSERT INTO...EXEC(....) AT [MY_LINKED_SERVER_NAME]'</i></b> in that case you need to Disable Promotion of Distributed Transactions(MSDTC).
            <br />
            If don't disabled it, you will encounter the <i>'The operation could not be performed because OLE DB provider "SQLNCLI11/MSOLEDBSQL" for linked server "MY_LINKED_SERVER_NAME" was unable to begin a distributed transaction.'</i> error.
        </p>
        <p>
            Query Example:
<pre class="">Insert Into dbo.Products 
EXEC('Select * from Products') AT [MY_LINKED_SERVER_NAME]</pre>
        </p>
        <hr />
</li>
 	<li>Click OK to save Linked Server</li>
 	<li>In SSMS execute below SQL query to test your connectivity.
<pre class="">SELECT * FROM OPENQUERY( MY_LINKED_SERVER_NAME, 'SELECT * FROM $')</pre>
</li>
 	<li>Here is the preview after you run some REST API query in SQL Server. Notice that you can override default configuration by supplying <a href="https://zappysys.com/onlinehelp/odbc-powerpack/scr/json-odbc-driver-connectionstring.htm" target="_blank" rel="noopener">many parameters</a> in WITH clause (second query example in the screenshot).
<div class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc_json_driver__api_query_data_in_mssqlserver.png" target="_blank" rel="noopener">
<img loading="lazy" decoding="async" width="750" height="354" class="wp-image-6455 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc_json_driver__api_query_data_in_mssqlserver.png" alt="odbc_json_driver_api_query_data_in_mssqlserver" srcset="https://zappysys.com/blog/wp-content/uploads/2019/01/odbc_json_driver__api_query_data_in_mssqlserver.png 750w, https://zappysys.com/blog/wp-content/uploads/2019/01/odbc_json_driver__api_query_data_in_mssqlserver-300x142.png 300w" sizes="(max-width: 750px) 100vw, 750px" />
</a>
<p class="wp-caption-text">SSMS Output - Query REST API via Linked Server OPENQUERY statement (Connect to ZappySys Data Gateway)</p>

</div></li>
 	<li>You can wrap your queries inside View or wrap inside Stored procedure to parameterize. Here is an example of creating the view which calls REST API queries.
<pre class="lang:tsql decode:true">CREATE VIEW dbo.vw_MyAPICall_View 
AS 
/*Call REST API inside SQL Server View*/
SELECT * FROM OPENQUERY( MY_LINKED_SERVER_NAME , 'SELECT * FROM $');

GO
</pre>
</li>
 	<li>Notice in above approach if you parameterize Stored Procedure then <a href="https://zappysys.com/blog/create-csv-list-sql-server-table-columns-datatypes/" target="_blank" rel="noopener">check this article to understand Dynamic Metadata</a>.</li>
 	<li>Now let's insert API data into the new data table "tblMyAPiData" in the SQL server database. For that, we need to execute below SQL query.
<pre class="lang:tsql decode:true ">Select * into tblMyAPiData FROM OPENQUERY( MY_LINKED_SERVER_NAME , 'SELECT * FROM $')</pre>
<div class="wp-caption alignnone">

<a href="https://zappysys.com/blog/wp-content/uploads/2019/02/odbc_json_driver_insert_data_in_sql.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="681" height="571" class="wp-image-6469 size-full" src="https://zappysys.com/blog/wp-content/uploads/2019/02/odbc_json_driver_insert_data_in_sql.png" alt="odbc_json_driver_insert_data_in_sql" srcset="https://zappysys.com/blog/wp-content/uploads/2019/02/odbc_json_driver_insert_data_in_sql.png 681w, https://zappysys.com/blog/wp-content/uploads/2019/02/odbc_json_driver_insert_data_in_sql-300x252.png 300w" sizes="(max-width: 681px) 100vw, 681px" /></a>
<p class="wp-caption-text">Insert data into the new table</p>

</div></li>
 	<li>Let's insert and update records into the already created table <span class="lang:default decode:true crayon-inline">"tblMyAPiData"</span>
<ul>
 	<li>To do that first we need to insert the new API data into the <span class="lang:default decode:true crayon-inline">"#temp_tblMyAPiData"</span> temporary database table.</li>
 	<li>Now let's delete the old records from the database table which are updated.</li>
 	<li>At the last insert all new API data into the database table.</li>
 	<li>To do that, we need to query like below SQL queries.</li>
</ul>
<pre class="lang:default decode:true">SELECT * into #temp_tblMyAPiData FROM OPENQUERY(MY_LINKED_SERVER_NAME, 'SELECT * FROM $')

DELETE FROM [dbo].[tblMyAPiData] WHERE id in (SELECT id FROM #temp_tblMyAPiData)

INSERT INTO tblMyAPiData
SELECT * FROM #temp_tblMyAPiData</pre>
&nbsp;</li>
 	<li>In the upper step, we see how to insert and update new records. Now if you want to update particular fields records only then you need to query like this.
<pre class="lang:default decode:true">Update dbtbl_1
set dbtbl_1.field1 = dbtbl_2.field1,
    dbtbl_1.field2 = dbtbl_2.field2
FROM tblMyAPiData dbtbl_1
JOIN (SELECT * FROM OPENQUERY(MY_LINKED_SERVER_NAME, 'SELECT * FROM $')) dbtbl_2 on dbtbl_1.id=dbtbl_2.id</pre>
<div class="su-note-inner su-clearfix" style="background-color: #fff4b7;border-color: #fffdf1;color: #333333">
<blockquote>*NOTE: If you are getting error like : "<strong>Cannot resolve the collation conflict between “Latin1_General_CI_AI” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation</strong>" then you need to query like this :
<pre class="lang:default decode:true">Update dbtbl_1
set dbtbl_1.field1 = dbtbl_2.field1,
    dbtbl_1.field2 = dbtbl_2.field2
FROM tblMyAPiData dbtbl_1
JOIN (SELECT * FROM OPENQUERY(MY_LINKED_SERVER_NAME, 'SELECT * FROM $')) dbtbl_2 
on dbtbl_1.id=dbtbl_2.id 
<strong>COLLATE SQL_Latin1_General_CP1_CI_AS</strong></pre>
&nbsp;</blockquote>
</div></li>
</ol></div>
<h2><span id="Step-by-Step_Import_REST_API_into_Power_BI">Conclusion</span></h2>
<p>So in this blog, we learned how to generate a QuickBooks API Token, Load QuickBooks Invoices data in MS SQL Server table using <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a> in a very simple way. You can achieve many more functionalities with this tool. Check our blogs/articles on <strong>JSON / REST API Driver</strong> <a href="https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/" target="_blank" rel="noopener">https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/</a> to find out what <em>this tool</em> is capable of more.</p>
<h2><span id="References">References</span></h2>
<p>Finally, you can use the following links for more information about the use of QuickBooks API with our tools:</p>
<ul>
<li><a href="https://developer.atlassian.com/cloud/jira/platform/rest/" target="_blank" rel="noopener">QuickBooks Documentation for API</a></li>
<li><strong>Landing Page</strong> for <a href="https://zappysys.com/products/odbc-powerpack/odbc-json-rest-api-driver/" target="_blank" rel="noopener">ODBC JSON / REST API Driver</a>, you can also find <a href="https://youtu.be/iwezz0Z3D4U" target="_blank" rel="noopener">Tutorial Video</a> here.</li>
<li><strong>Help File:</strong> Documentation of <a href="https://zappysys.com/onlinehelp/odbc-powerpack/index.htm#page=json-odbc-driver-intro.htm" target="_blank" rel="noopener">JSON Driver</a>.</li>
<li><strong>Blog/articles link</strong>: <a href="https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/" target="_blank" rel="noopener">https://zappysys.com/blog/category/odbc-powerpack/odbc-drivers/json-rest-api-driver/</a></li>
</ul>
<p>The post <a href="https://zappysys.com/blog/read-data-from-quickbooks-online-to-sql-server/">Read data from QuickBooks Online into SQL Server via ODBC Driver</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
