<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WDCi Blogs</title>
	
	<link>http://blog.wdcigroup.net</link>
	<description />
	<lastBuildDate>Fri, 25 May 2012 09:30:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WDCiBlogs" /><feedburner:info uri="wdciblogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Salesforce Integration Tips: Using the Bulk API – Serial or Parallel mode options</title>
		<link>http://blog.wdcigroup.net/2012/05/salesforce-integration-tips-using-the-bulk-api-serial-or-parallel-mode-options/</link>
		<comments>http://blog.wdcigroup.net/2012/05/salesforce-integration-tips-using-the-bulk-api-serial-or-parallel-mode-options/#comments</comments>
		<pubDate>Fri, 25 May 2012 09:30:59 +0000</pubDate>
		<dc:creator>zylean</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[Salesforce BULK API]]></category>
		<category><![CDATA[salesforce data loader]]></category>
		<category><![CDATA[salesforce integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=449</guid>
		<description><![CDATA[I talked about the usage of Salesforce BULK API in Talend Data Integration Studio and the  Dell Boomi Integration Platform previously. So I&#8217;m wondering, how many of us really know that there are actually 2 concurrency modes available in the &#8230; <a href="http://blog.wdcigroup.net/2012/05/salesforce-integration-tips-using-the-bulk-api-serial-or-parallel-mode-options/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I talked about the usage of <a href="http://blog.wdcigroup.net/2012/05/salesforce-bulk-api-in-talend-data-integration/">Salesforce BULK API in Talend Data Integration Studio</a> and the  <a href="http://blog.wdcigroup.net/2012/05/dell-boomi-integration-tips-using-the-salesforce-bulk-api-option/">Dell Boomi Integration Platform </a>previously. So I&#8217;m wondering, how many of us really know that there are actually 2 concurrency modes available in the Salesforce BULK API &#8211; Serial mode and Parallel mode.</p>
<div></div>
<div><strong>Parallel mode</strong></div>
<div>This is the default mode in the BULK API. Salesforce will process all the batches in a posted job in parallel and this gives you a better performance in uploading data. However, this might lead to lock contention which will cause the upload to fail.</div>
<div></div>
<div></div>
<div><strong>Serial mode</strong></div>
<div>Salesforce will process all the batches in a posted job one by one and this can help to prevent the lock contention issue that can be encountered in Parallel mode. But, please bear in mind that you should only use this mode if you couldn&#8217;t get around the lock contention issue.</div>
<div></div>
<div></div>
<div><strong>How to Enable Serial Mode in Apex Data Loader?</strong></div>
<div>You can enable this in Apex Data Loader settings as shown in the screenshot below.</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/apexloader.png"><img class="alignnone size-medium wp-image-450" title="apexloader" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/apexloader-229x300.png" alt="" width="229" height="300" /></a></div>
<div></div>
<div>
<div><strong>How to Enable Serial Mode in Java Client?</strong></div>
<div>
<div>You can set the concurrency mode in the job as the following:</div>
<div></div>
<div>JobInfo job = new JobInfo();</div>
<div></div>
<div>job.setObject(&#8220;ObjectName&#8221;);</div>
<div>job.setOperation(OperationEnum.query);</div>
<div>job.setConcurrencyMode(<strong><em>ConcurrencyMode.Serial</em></strong>);</div>
<div>job.setContentType(ContentType.CSV);</div>
<div>job = bulkConnection.createJob(job);</div>
</div>
<div></div>
<div><strong><br />
</strong></div>
<div>If you would like to know more information about concurrency mode in Salesforce BULK API, please visit the Bulk API Developer&#8217;s Guide:</div>
<div></div>
<div>- <a href="http://www.google.com/url?q=http%3A%2F%2Fwww.salesforce.com%2Fus%2Fdeveloper%2Fdocs%2Fapi_asynch%2Fapi_bulk.pdf&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzc6eEPHNhsjtsdolXPObJpswkBWpw">http://www.salesforce.com/us/developer/docs/api_asynch/api_bulk.pdf</a></div>
<div>- <a href="http://www.google.com/url?q=http%3A%2F%2Fwiki.developerforce.com%2Fpage%2FLoading_Large_Data_Sets_with_the_Force.com_Bulk_API&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzdVOCeDfnpbEcN0_YJp0DVHeQcNvQ">http://wiki.developerforce.com/page/Loading_Large_Data_Sets_with_the_Force.com_Bulk_API</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/salesforce-integration-tips-using-the-bulk-api-serial-or-parallel-mode-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Boomi Integration Tips: Using the Salesforce Bulk API option</title>
		<link>http://blog.wdcigroup.net/2012/05/dell-boomi-integration-tips-using-the-salesforce-bulk-api-option/</link>
		<comments>http://blog.wdcigroup.net/2012/05/dell-boomi-integration-tips-using-the-salesforce-bulk-api-option/#comments</comments>
		<pubDate>Fri, 25 May 2012 09:21:53 +0000</pubDate>
		<dc:creator>zylean</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[boomi integration]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce BULK API]]></category>
		<category><![CDATA[salesforce integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=454</guid>
		<description><![CDATA[In the last blog post, I talked about the usage of Salesforce BULK API in one of the integration tools that we use. This brought up my curiosity to find out how the BULK API option works in the Dell Boomi Salesforce connector. Out of &#8230; <a href="http://blog.wdcigroup.net/2012/05/dell-boomi-integration-tips-using-the-salesforce-bulk-api-option/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the last <a href="http://www.google.com/url?q=http%3A%2F%2Fblog.wdcigroup.net%2F2012%2F05%2Fsalesforce-bulk-api-in-talend-data-integration%2F&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzdQT9Z7LGDfBfXLWORSYj2SvhUhyw" target="_blank">blog post</a>, I talked about the usage of <a href="http://www.google.com/url?q=http%3A%2F%2Fwiki.developerforce.com%2Fpage%2FLoading_Large_Data_Sets_with_the_Force.com_Bulk_API&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzdVOCeDfnpbEcN0_YJp0DVHeQcNvQ" target="_blank">Salesforce BULK API</a> in one of the integration tools that we use.</p>
<div>
<div></div>
<div>This brought up my curiosity to find out how the BULK API option works in the <a href="http://www.google.com/url?q=http%3A%2F%2Fwww.boomi.com%2F&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzdDpYD3OW8T3TPhHPxUHlFa5z3DRw" target="_blank">Dell Boomi</a> <a href="http://www.google.com/url?q=http%3A%2F%2Fhelp.boomi.com%2Fdisplay%2FBOD%2FSalesforce%2BConnector&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzf7CBwgDzNLaUgGu77THU_LZHVruA" target="_blank">Salesforce connector</a>. Out of the box the Salesforce connector only supports the BULK API option in parallel mode. Please the screenshot below:</div>
</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/DellBoomiSalesforceConnectorSetup.png"><img class="alignnone size-medium wp-image-455" title="DellBoomiSalesforceConnectorSetup" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/DellBoomiSalesforceConnectorSetup-300x210.png" alt="" width="300" height="210" /></a></div>
<div>
<div>There are 2 options that you need to look at:</div>
<div></div>
<div>1. Use Bulk API &#8211; to tell the connector to load data to Salesforce using Bulk API</div>
<div>2. Batch Count &#8211; the maximum number of records in a batch</div>
<div></div>
<div>To have your data upload with Bulk API, you just need to check on the &#8220;Use Bulk API&#8221; checkbox and specify the Batch Count (the default value is 200) in the operation configuration screen. The Dell Boomi Salesforce connector will handle everything for you automatically at the backend including preparing the data into batch according to the Batch Count.</div>
</div>
<div></div>
<div>
<div>As there is no option to turn on serial model, some options to address lock contention in Salesforce could be:</div>
<div>
<ol>
<li>Reduce batch sizes</li>
<li>Use flow control</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/dell-boomi-integration-tips-using-the-salesforce-bulk-api-option/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netsuite Integration Tips: Troubleshooting errors</title>
		<link>http://blog.wdcigroup.net/2012/05/netsuite-integration-tips-troubleshooting-errors/</link>
		<comments>http://blog.wdcigroup.net/2012/05/netsuite-integration-tips-troubleshooting-errors/#comments</comments>
		<pubDate>Fri, 25 May 2012 08:59:26 +0000</pubDate>
		<dc:creator>TIM</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[Netsuite]]></category>
		<category><![CDATA[netsuite integration]]></category>
		<category><![CDATA[troubleshooting netsuite integrations]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=430</guid>
		<description><![CDATA[Netsuite has a feature called the Web Services Usage Log, this is useful for troubleshooting issues for an integration between Netsuite and other applications. Using this feature, you can view the incoming web services requests received by Netsuite and also the &#8230; <a href="http://blog.wdcigroup.net/2012/05/netsuite-integration-tips-troubleshooting-errors/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Netsuite has a feature called the <strong>Web Services Usage Log</strong>, this is useful for troubleshooting issues for an integration between Netsuite and other applications. Using this feature, you can view the incoming web services requests received by Netsuite and also the response returned by Netsuite.</p>
<p>The Web Services Usage Log can be accessed under the top menu panel: <em>Setup &gt; Integration &gt; Web Services Usage Log</em></p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/usagelog.png"><img class="alignnone size-medium wp-image-431" title="usagelog" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/usagelog-300x154.png" alt="" width="300" height="154" /></a></p>
<p>Here, we have an example on how to troubleshoot the error when a Customer record has failed to be created into Netsuite from another application:</p>
<p>1. Once clicked into the Web Services Usage Log, we can see a list of jobs (each job represents the incoming request sent to Netsuite). The last request that was sent to Netsuite is the one that attempted to create a Customer record. The <strong>Status </strong>of this job has failed.</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/jobs1.png"><img class="alignnone size-medium wp-image-434" title="jobs1" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/jobs1-300x41.png" alt="" width="300" height="41" /></a></p>
<p>2. We can view the request sent to Netsuite. Here is a screenshot of the request:</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/request.png"><img class="alignnone size-medium wp-image-435" title="request" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/request-300x156.png" alt="" width="300" height="156" /></a></p>
<p>3. Let&#8217;s view the response returned by Netsuite for this job. Inside this response, we can then see the <strong>Error Code</strong> and <strong>Error Message</strong> explaining why Netsuite failed to create this Customer record.</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/response2.png"><img class="alignnone size-medium wp-image-436" title="response2" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/response2-300x195.png" alt="" width="300" height="195" /></a></p>
<p><strong>Note: </strong>Some error messages returned are usually stated as <strong>Unknown Error</strong>, this type of error doesn&#8217;t give us clue and unfortunately will require further detailed troubleshooting to find out the cause.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/netsuite-integration-tips-troubleshooting-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boomi Integration Tips: Start Shape Options</title>
		<link>http://blog.wdcigroup.net/2012/05/boomi-integration-tips-start-shape-options/</link>
		<comments>http://blog.wdcigroup.net/2012/05/boomi-integration-tips-start-shape-options/#comments</comments>
		<pubDate>Tue, 22 May 2012 09:54:01 +0000</pubDate>
		<dc:creator>mychan</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[boomi integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=410</guid>
		<description><![CDATA[Before diving into the work of developing an integration process, it&#8217;s important to give some thought to error handling and the later stage of troubleshooting the process you have developed. In this topic, we would like to share some information &#8230; <a href="http://blog.wdcigroup.net/2012/05/boomi-integration-tips-start-shape-options/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Before diving into the work of developing an integration process, it&#8217;s important to give some thought to error handling and the later stage of troubleshooting the process you have developed. In this topic, we would like to share some information we know with regards to the Start shape of the Boomi component.</p>
<p>There are 3 options that we are mainly focusing on:</p>
<ol>
<li>Connector</li>
<li>No Data</li>
<li>Data Passthrough</li>
</ol>
<p><strong>Connector</strong></p>
<p>If Connector is your selected option, then you should expect to see:</p>
<ul>
<li>The # of records returned from the output Connector of the start shape in your Process Reporting</li>
<li>The process execution appearing in your Process Reporting</li>
</ul>
<p>For example, using Salesforce connector will produce the following result in Process Reporting:</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/1.png"><img class="alignnone size-medium wp-image-413" title="Connector" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/1-300x124.png" alt="" width="300" height="124" /></a></p>
<p><strong>Note:</strong><br />
The inbound result also depends on the response document of the selected Connector. For Salesforce (example above), the response document returned represents a record individually (8 records in total for the above example). Other connectors may just return a single response representing all the records within one document regardless of the number of records returned.</p>
<p><strong>No Data</strong></p>
<p>If No Data is your selected option, then you will always see:</p>
<ul>
<li>1 inbound data</li>
<li>The process execution appearing in your Process Reporting</li>
</ul>
<p>For example:</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/2.png"><img class="alignnone size-medium wp-image-414" title="No Data" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/2-300x130.png" alt="" width="300" height="130" /></a></p>
<p><strong>Data Passthrough</strong></p>
<p>This option is most often selected when the process should receive data from another process or another external source. We can say that it is used within a sub-process. If Data Passthrough is your selected option within the sub-process, then you should expect:</p>
<ul>
<li>Not to see the sub-process execution where the Data Passthrough is selected in your Process Reporting</li>
<li>The logic of the process flow is performed at the back end</li>
</ul>
<p>For example:</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/3.png"><img class="alignnone size-medium wp-image-415" title="Data Passthrough" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/3-300x161.png" alt="" width="300" height="161" /></a></p>
<p><strong>Note:</strong><br />
If Data Passthrough is used within a parent process where the process is scheduled without a data source, it will run as a No Data start shape.</p>
<p>I hope that the above explanation will help you to decide which Start shape option best suits your design.</p>
<p>With this information in mind, you can decide the necessity of the process execution display within the Process Reporting to assist with your troubleshooting effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/boomi-integration-tips-start-shape-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips: Magento API – filter and complex filter</title>
		<link>http://blog.wdcigroup.net/2012/05/tips-magento-api-filter-and-complex-filter/</link>
		<comments>http://blog.wdcigroup.net/2012/05/tips-magento-api-filter-and-complex-filter/#comments</comments>
		<pubDate>Tue, 22 May 2012 02:25:18 +0000</pubDate>
		<dc:creator>TIM</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[magento integration]]></category>
		<category><![CDATA[magento web serv]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=398</guid>
		<description><![CDATA[When you are querying records in Magento, you can use filter to narrow down the result. The basic filter uses the EQUAL operator and AND operand. For example, you can query products with two basic filters: type=simple AND set=39 Example:       &#60;urn:catalogProductList soapenv:encodingStyle=&#8221;http://schemas.xmlsoap.org/soap/encoding/&#8221;&#62; &#8230; <a href="http://blog.wdcigroup.net/2012/05/tips-magento-api-filter-and-complex-filter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When you are querying records in Magento, you can use filter to narrow down the result.</p>
<p>The basic filter uses the <strong>EQUAL </strong>operator and <strong>AND </strong>operand. For example, you can query products with two basic filters: <strong>type=simple AND set=39</strong></p>
<p>Example:</p>
<p><strong></strong><em>      &lt;urn:catalogProductList soapenv:encodingStyle=&#8221;http://schemas.xmlsoap.org/soap/encoding/&#8221;&gt;</em></p>
<div>
<div><em>         &lt;sessionId xsi:type=&#8221;xsd:string&#8221;&gt;</em><em>c9f1</em><em>ca</em><em>71</em><em>de1</em><em>d</em><em>a</em><em>42</em><em>0</em><em>2c</em><em>8</em><em>4</em><em>bf</em><em>90f6</em><em>d</em><em>f5</em><em>1cf</em><em>&lt;/sessionId&gt;</em></div>
<div><span style="color: #0000ff;"><em>         &lt;filters xsi:type=&#8221;urn:filters&#8221;&gt;</em></span></div>
<div><span style="color: #0000ff;"><em>            &lt;filter xsi:type=&#8221;urn:associativeArray&#8221; soapenc:arrayType=&#8221;urn:associativeEntity[]&#8220;&gt;</em></span></div>
<div><span style="color: #0000ff;"><em> &lt;item&gt;</em></span></div>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><em><span style="color: #0000ff;"> &lt;value&gt;</span><span style="color: #ff0000;">simple</span><span style="color: #0000ff;">&lt;/value&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;/item&gt;</em></span></div>
<div>
<div><span style="color: #0000ff;"><em> &lt;item&gt;</em></span></div>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">set</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><em><span style="color: #0000ff;"> &lt;value&gt;</span><span style="color: #ff0000;">39</span><span style="color: #0000ff;">&lt;/value&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;/item&gt;</em></span></div>
</div>
<div><span style="color: #0000ff;"><em>     &lt;/filter&gt;</em></span></div>
<div><span style="color: #0000ff;"><em>         &lt;/filters&gt;</em></span></div>
<div><em>         &lt;storeView xsi:type=&#8221;xsd:string&#8221;&gt;&lt;/storeView&gt;</em></div>
<div><em>      &lt;/urn:catalogProductList&gt;</em></div>
</div>
<div>Using the complex filter, you can perform a more sophisticated search. For example, you can query customers with two complex filters: <strong>store_id=0 AND <span style="color: #ff0000;">created_at</span>&gt;2012-05-13 06:11:00</strong></div>
<div><strong></strong>Example:</div>
<div></div>
<div>
<div><em>      &lt;urn:customerCustomerList soapenv:encodingStyle=&#8221;http://schemas.xmlsoap.org/soap/encoding/&#8221;&gt;</em></div>
<div><em>         &lt;sessionId xsi:type=&#8221;xsd:string&#8221;&gt;<em>c9f1</em><em>ca</em><em>71</em><em>de1</em><em>d</em><em>a</em><em>42</em><em>0</em><em>2c</em><em>8</em><em>4</em><em>bf</em><em>90f6</em><em>d</em><em>f5</em><em>1cf</em>&lt;/sessionId&gt;</em></div>
<div><em>         &lt;filters xsi:type=&#8221;urn:filters&#8221;&gt;</em></div>
<p><span style="color: #0000ff;"><em>            &lt;complex_filter xsi:type=&#8221;urn:complexFilterArray&#8221; soapenc:arrayType=&#8221;urn:complexFilter[]&#8220;&gt;</em></span><span style="color: #0000ff;"><em><br />
&lt;item&gt;</em></span></p>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">store_id</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;value&gt;</em></span></div>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">eq</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><em><span style="color: #0000ff;"> &lt;value&gt;</span><span style="color: #ff0000;">0</span><span style="color: #0000ff;">&lt;/value&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;/value&gt;</em></span></div>
<div><span style="color: #0000ff;"><em> &lt;/item&gt;<span style="color: #0000ff;"><em><br />
&lt;item&gt;</em></span></em></span></p>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">created_at</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;value&gt;</em></span></div>
<div><em><span style="color: #0000ff;"> &lt;key&gt;</span><span style="color: #ff0000;">gt</span><span style="color: #0000ff;">&lt;/key&gt;</span></em></div>
<div><em><span style="color: #0000ff;"> &lt;value&gt;</span><span style="color: #ff0000;">2012-05-13 06:11:00</span><span style="color: #0000ff;">&lt;/value&gt;</span></em></div>
<div><span style="color: #0000ff;"><em> &lt;/value&gt;</em></span></div>
<div><span style="color: #0000ff;"><em> &lt;/item&gt;</em></span></div>
</div>
<div><span style="color: #0000ff;"><em>     &lt;/complex_filter&gt;</em></span></div>
<div><em>         &lt;/filters&gt;</em></div>
<div><em><em>      &lt;/urn:customerCustomerList&gt;</em></em>The complex filter also uses the <strong>AND</strong><em> </em>operand. However, you can specify your own operator. For example: <strong>eq</strong> (equals), <strong>neq </strong>(not equals), <strong>gt </strong>(greater than), <strong>lt </strong>(less than), etc.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/tips-magento-api-filter-and-complex-filter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce BULK API in Talend Data Integration</title>
		<link>http://blog.wdcigroup.net/2012/05/salesforce-bulk-api-in-talend-data-integration/</link>
		<comments>http://blog.wdcigroup.net/2012/05/salesforce-bulk-api-in-talend-data-integration/#comments</comments>
		<pubDate>Tue, 22 May 2012 01:45:07 +0000</pubDate>
		<dc:creator>zylean</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[Bulk API]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce BULK API]]></category>
		<category><![CDATA[Talend Data Integration]]></category>
		<category><![CDATA[Talend Integration]]></category>
		<category><![CDATA[tSalesforceBulkExec]]></category>
		<category><![CDATA[tSalesforceOutputBulk]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=370</guid>
		<description><![CDATA[Migrating or integrating your data from an in-house application or cloud application to Salesforce can be difficult, time consuming and consume a lot of API calls if you choose the wrong approach. There are a lot of tools available in &#8230; <a href="http://blog.wdcigroup.net/2012/05/salesforce-bulk-api-in-talend-data-integration/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div>Migrating or integrating your data from an in-house application or cloud application to Salesforce can be difficult, time consuming and consume a lot of API calls if you choose the wrong approach.</div>
<div></div>
<div>There are a lot of tools available in the Internet nowadays, and the most common tool that a developer is like to use is the <a href="http://wiki.developerforce.com/page/Data_Loader">Salesforce Apex Data Loader</a>. The advantage of using this tool is that it does support the BULK API, which can help to save the number of API calls that you need during the upload. However, if you want to implement additional logic to manipulate the data before uploading the data to Salesforce, you&#8217;ll need consider to using an integration tool.</div>
<div></div>
<div>Here, I will go through the steps to implement a simple <a href="http://www.talend.com">Talend Data Integration</a> job which will upload data from a CSV file to the Salesforce Account object by utilizing the Salesforce Bulk API.</div>
<div></div>
<div>First, you need to create a new job in Talend. Here, I will start with tPrejob component and connect it to a tFileInputDelimited component. This will force the job to execute the tFileInputDelimited component during runtime to read the data that I want to load into Salesforce.</div>
<div></div>
<div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step1.png"><img class="alignnone size-medium wp-image-378" title="step1" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step1-300x173.png" alt="" width="300" height="173" /></a></div>
<div>Figure 1 &#8211; Read data using tFileInputDelimited</div>
<div>&nbsp;</div>
<div>Next, you have to specify the schema for the tFileInputDelimited component according to the fields that you have in the CSV file. Below is the schema that I use in this example:</div>
<div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step2.png"><img class="alignnone size-medium wp-image-379" title="step2" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step2-300x218.png" alt="" width="300" height="218" /></a></div>
<div>Figure 2 &#8211; Schema for tFileInputDelimited</div>
<div>&nbsp;</div>
<div>Now, you have to drag the tSalesforceOutputBulk component into the design workspace and specify the location to save the Salesforce bulk data load file and schema. Please note that the name of the field for the tSalesforceOutputBulk component must be exactly the same as the API name in that you see in Salesforce Account object (Setup -&gt; App Setup -&gt; Customize -&gt; Accounts -&gt; Fields).</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step3.png"><img class="alignnone size-medium wp-image-380" title="step3" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step3-300x150.png" alt="" width="300" height="150" /></a></div>
<div>Figure 3 &#8211; Salesforce bulk data load file location for tSalesforceOutputBulk component</div>
<div>&nbsp;</div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step4.png"><img class="alignnone size-medium wp-image-381" title="step4" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step4-300x218.png" alt="" width="300" height="218" /></a></div>
<div>Figure 4 &#8211; Schema for tSalesforceOutputBulk component</div>
</div>
<div>&nbsp;</div>
<div>Once the schema for tFileInputDelimited and tSalesforceOutputBulk are specified, we will do a simple transformation in between and mapping by using tMap component. You need to drag the tMap component from the palette and:</div>
<div></div>
<div>1. connect the tFileInputDelimited to tMap by right click on the component -&gt; Row -&gt; Main</div>
<div>2. connect the tMap to tSalesforceOutputBulk by right click on the component -&gt; Row -&gt; *New Output* (Main) -&gt; name the output (in this example, I name it as sf_data) then click Yes when it prompts you &#8220;Do you want to get the schema of the target component?&#8221;.</div>
<div></div>
<div>Figure 5 will be the current flow that I have in design workspace.</div>
<div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step5.png"><img class="alignnone size-medium wp-image-382" title="step5" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step5-300x88.png" alt="" width="300" height="88" /></a></div>
<div>Figure 5 &#8211; Flows from tFileInputDelimited to tSalesforceOutputBulk</div>
<div>&nbsp;</div>
<div>In the tMap component, you can map the fields and apply additional logic according to your business logic. In this example, I want to join the address1 and address2 to become BillingStreet in Salesforce</div>
<div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step6.png"><img class="alignnone size-medium wp-image-383" title="step6" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step6-300x187.png" alt="" width="300" height="187" /></a></div>
<div>Figure 6 &#8211; Field mapping in tMap component</div>
<div>&nbsp;</div>
<div>At this point, you have done first part of the process and we will move on to the second part where the job will read the Salesforce bulk data load file using the tSalesforceBulkExec component and save the success and failure result to CSV files (salesforce_account_bulk_success.csv and salesforce_account_bulk_fail.csv).</div>
</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/part2.png"><img class="alignnone size-medium wp-image-377" title="part2" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/part2-300x141.png" alt="" width="300" height="141" /></a></div>
</div>
<div>Figure 7 &#8211; tSalesforceBulkExec</div>
</div>
<div>&nbsp;</div>
<div>Before you move on to the next step, you need to configure the connection settings and the number of rows to commit in the tSalesforceBulkExec component. The default Rows to commit is 10000. You can reduce the number according to your requirement. I will stick with 10000 in this example as my company has data to load in a day and this can help to save the number of API calls <img src='http://blog.wdcigroup.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step7.png"><img class="alignnone size-medium wp-image-384" title="step7" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step7-300x60.png" alt="" width="300" height="60" /></a></div>
<div>
<div></div>
<div>Figure 8 &#8211; tSalesforceBulkExec connection setting</div>
<div>&nbsp;</div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step8.png"><img class="alignnone size-medium wp-image-385" title="step8" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step8-300x73.png" alt="" width="300" height="73" /></a></div>
<div>Figure 9 &#8211; Rows to commit in tSalesforceBulkExec</div>
</div>
<div>&nbsp;</div>
<div>After that, you need to connect the Main row from tSalesforceBulkExec component to a tFileOutputDelimited to record the success record and the Reject row to another tFileOutputDelimited to record the failure record. The reason of doing this is you will be able to know which record is uploaded to Salesforce successfully and the record id in Salesforce. This makes your life easier if you would want to use the record id in another job. Below are the schemas that you should see in Main row and Reject row:</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step9.png"><img class="alignnone size-medium wp-image-386" title="step9" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step9-300x120.png" alt="" width="300" height="120" /></a></div>
<div></div>
<div>Figure 10 &#8211; Schema for Main row from tSalesforceBulkExec</div>
<div>&nbsp;</div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step10.png"><img class="alignnone size-medium wp-image-387" title="step10" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step10-300x120.png" alt="" width="300" height="120" /></a></div>
<div></div>
<div>Figure 11 &#8211; Schema for Reject row from tSalesforceBulkExec</div>
<div>&nbsp;</div>
<div>Yes, now you are done and you should something similar to this in the design workspace. You can run the job by clicking on the Run button and you should see the data is uploaded to Salesforce.</div>
<div></div>
<div><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step11.png"><img class="alignnone size-medium wp-image-388" title="step11" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/step11-300x167.png" alt="" width="300" height="167" /></a></div>
<div></div>
<div>Figure 12 &#8211; Complete flow</div>
<div>&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/salesforce-bulk-api-in-talend-data-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error Handling in Talend using tLogCatcher</title>
		<link>http://blog.wdcigroup.net/2012/05/error-handling-in-talend-using-tlogcatcher/</link>
		<comments>http://blog.wdcigroup.net/2012/05/error-handling-in-talend-using-tlogcatcher/#comments</comments>
		<pubDate>Mon, 21 May 2012 05:35:35 +0000</pubDate>
		<dc:creator>TIM</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[talend]]></category>
		<category><![CDATA[Talend Error Handling]]></category>
		<category><![CDATA[Talend Integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=351</guid>
		<description><![CDATA[The tLogCatcher component listens to Warn, Die or Java Exceptions in the Talend Job. It will retrieve log information from the message and send it to a standard Talend output. By using this component you can display the error message(s) &#8230; <a href="http://blog.wdcigroup.net/2012/05/error-handling-in-talend-using-tlogcatcher/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The tLogCatcher component listens to Warn, Die or Java Exceptions in the Talend Job. It will retrieve log information from the message and send it to a standard Talend output. By using this component you can display the error message(s) in more detail and an organised format.</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/errorMsg.png"><img class="alignnone size-medium wp-image-364" title="errorMsg" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/errorMsg-300x60.png" alt="" width="300" height="60" /></a></p>
<div></div>
<p><span style="text-decoration: underline;">Formatting the output</span></p>
<p>Did you notice that there too many columns displayed on the above image and that you are not allowed to edit the tLogCatcher schema directly to remove the columns. The solution is to use a tMap component to filter out those columns you do not want to display:</p>
<p><a href="http://blog.wdcigroup.net/wp-content/uploads/2012/05/errorMsgWithtMap.png"><img class="alignnone size-medium wp-image-365" title="errorMsgWithtMap" src="http://blog.wdcigroup.net/wp-content/uploads/2012/05/errorMsgWithtMap-300x158.png" alt="" width="300" height="158" /></a></p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/error-handling-in-talend-using-tlogcatcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LDAP Integration: Performing a User search in Group</title>
		<link>http://blog.wdcigroup.net/2012/05/ldap-integration-performing-a-user-search-in-group/</link>
		<comments>http://blog.wdcigroup.net/2012/05/ldap-integration-performing-a-user-search-in-group/#comments</comments>
		<pubDate>Thu, 17 May 2012 05:18:28 +0000</pubDate>
		<dc:creator>TIM</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[ldap integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=340</guid>
		<description><![CDATA[If you are synchronising users from one system to LDAP, you can check if the User is a member of a Group before adding the User into the Group. This can be achieved by using the LDAP connector. You can do this by providing &#8230; <a href="http://blog.wdcigroup.net/2012/05/ldap-integration-performing-a-user-search-in-group/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div>If you are synchronising users from one system to LDAP, you can <strong>check if the User is a member of a Group</strong> before adding the User into the Group. This can be achieved by using the <strong><a href="http://www.google.com/url?q=http%3A%2F%2Fblog.wdcigroup.net%2F2009%2F09%2Fldap-connector-for-boomi%2F&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzcgYs0cngEzLYb5TKN8pxgHFMRdWg" target="_blank">LDAP connector</a></strong>. You can do this by providing the <strong>User CN</strong> and <strong>Group DistinguishedName</strong> into the filters.</div>
<div>For example, we can put the following details into the filters of connector to perform the search:</p>
<table border="1" cellspacing="0">
<tbody>
<tr>
<td> User CN: 112233<br />
Group DistinguishedName: CN=My_Group,OU=User_Groups,DC=test,DC=wdci,DC=com,DC=au</td>
</tr>
</tbody>
</table>
</div>
<div>This is the result we will get if the user is found in the group:</p>
<table border="1" cellspacing="0">
<tbody>
<tr>
<td> &lt;result&gt;<br />
&lt;status&gt;Found&lt;/status&gt;<br />
&lt;message&gt;User 112233 found in group CN=My_Group,OU=Students,OU=User_Groups,DC=test,DC=wdci,DC=com,DC=au&lt;/message&gt;<br />
&lt;/result&gt;</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/ldap-integration-performing-a-user-search-in-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Salesforce Object Relationships</title>
		<link>http://blog.wdcigroup.net/2012/05/understanding-salesforce-object-relationships/</link>
		<comments>http://blog.wdcigroup.net/2012/05/understanding-salesforce-object-relationships/#comments</comments>
		<pubDate>Thu, 17 May 2012 04:27:08 +0000</pubDate>
		<dc:creator>mychan</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[salesforce data model]]></category>
		<category><![CDATA[salesforce integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=334</guid>
		<description><![CDATA[There are many skill variations when it comes to Salesforce system implementation and Salesforce integration. One of it requires an understanding on the object relationship within the application. It is not hard to comprehend the relationship once you can identify &#8230; <a href="http://blog.wdcigroup.net/2012/05/understanding-salesforce-object-relationships/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are many skill variations when it comes to Salesforce system implementation and Salesforce integration. One of it requires an understanding on the object relationship within the application. It is not hard to comprehend the relationship once you can identify the data model that you are about to build. The following are some of the common object relationships that are used to define the data model:</p>
<p>1. One to One<br />
2. One to Many/Many to One<br />
3. Many to Many</p>
<p>One of the ways to get yourself equipped with the knowledge is to read through the Salesforce Fundamentals documentation. Well, that&#8217;s how I got to it while undertaking the Salesforce Certification &#8211; Developer. However, if you find that going through the materials a hassle, you can always refer to the following explanation on a quick run-down on how to build the data model.</p>
<h2 style="background-color:rgb(204,204,204)"><a name="TOC-One-to-One-object-relationship"></a>One to One object relationship</h2>
<p><strong>Scenario: </strong><br />
One School can only have one Headmaster</p>
<p><strong>Implementation:</strong><br />
This object relationship requires that one of the associated object to be unique.<br />
- School (Master object)<br />
- Headmaster (Detail/Child object)<br />
- Create a unique field in Headmaster object<br />
- Create workflow to copy the School id to the unique field for every record creation</p>
<h2 style="background-color:rgb(204,204,204)"><a name="TOC-One-to-Many-Many-to-One-object-relationship"></a>One to Many/Many to One object relationship</h3>
<p><strong>Scenario:</strong><br />
One school can have many teachers</p>
<p><strong>Implementation:</strong><br />
- School object<br />
- Teacher object: School field (Lookup to School)</p>
<p>When you view the relationship from School, it&#8217;s ONE School to MANY Teachers<br />
When you view the relationship from Teacher, it&#8217;s MANY Teachers to ONE School</p>
<h2 style="background-color:rgb(204,204,204)"><a name="TOC-Many-to-Many-object-relationship"></a>Many to Many object relationship</h3>
<p><strong>Scenario: </strong><br />
Student can enrol in many subjects</p>
<p><strong>Implementation:</strong><br />
- This is where junction object comes into play for this relationship<br />
- Student Subject (junction object)<br />
- Subject (Master object to Student Subject)<br />
- Student (Master object to Student Subject)</p>
<p>This model explains that there are many students taking up many subjects and vice versa.</p>
<p>Hope this clears off any confusion you have with regards to the object relationships.</p>
<p>Furthermore, if you plan to perform a Salesforce migration with other applications and require to figure out the object relationship via API, you can simply generate the Salesforce WSDL of your current instance via:</p>
<p><em>Setup &gt; App Setup &gt; Develop &gt; API &gt; Generate WSDL</em></p>
<p>From there, you should be able to determine the definition of the object relationship. The following extensions explain on the references:</p>
<p><em>__c</em> &#8211; in reference to the custom field id values</p>
<p><em>__r</em> &#8211; in reference to the custom object relationship with the current object view</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/understanding-salesforce-object-relationships/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce Integration: The 15 &amp; 18 character alphanumeric ID</title>
		<link>http://blog.wdcigroup.net/2012/05/salesforce-integration-the-15-18-character-alphanumeric-id/</link>
		<comments>http://blog.wdcigroup.net/2012/05/salesforce-integration-the-15-18-character-alphanumeric-id/#comments</comments>
		<pubDate>Thu, 17 May 2012 04:13:34 +0000</pubDate>
		<dc:creator>jacky</dc:creator>
				<category><![CDATA[Company Update]]></category>
		<category><![CDATA[In The Lab]]></category>
		<category><![CDATA[Integration Corner]]></category>
		<category><![CDATA[Salesforce API]]></category>
		<category><![CDATA[salesforce integration]]></category>

		<guid isPermaLink="false">http://blog.wdcigroup.net/?p=320</guid>
		<description><![CDATA[A Salesforce ID represents a unique Salesforce record. The 15 character ID comes in an alphanumeric format i.e. 0019000000CHAus.  A simple way to retrieve this is via the URL. A Salesforce record ID comes in an 18 character format i.e. 0019000000CHAusAAH.  The &#8230; <a href="http://blog.wdcigroup.net/2012/05/salesforce-integration-the-15-18-character-alphanumeric-id/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A Salesforce ID represents a unique Salesforce record. The 15 character ID comes in an alphanumeric format i.e. <em>0019000000CHAus.</em></p>
<div><em><br />
</em></div>
<div> A simple way to retrieve this is via the URL.</div>
<div>
<div><img src="https://sites.google.com/a/wdcigroup.net/wdci-website-blogs/_/rsrc/1337075453311/home/blogs/integratingsalesforcethe15and18alphanumericid/2012-05-15_171835.png" alt="" border="0" /></div>
<div></div>
<div>A Salesforce record ID comes in an 18 character format i.e. <em>0019000000CHAusAAH. </em></div>
<div></div>
<div>The 18 character ID is similar to the 15 characters mentioned above but appended with 3 additional characters.</div>
<div></div>
<div>The 18 character ID is only retrievable through the Salesforce API using a web service query or an Integration tool, Data Loader or Apex Explorer. Here is an example response when querying for Account records in Salesforce:</div>
<div></div>
<div>
<div>
<div>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</div>
<div>  &lt;Account&gt;</div>
<div>    &lt;Id&gt;<strong>0019000000CHAusAAH</strong>&lt;/Id&gt;</div>
<div>    &lt;Name&gt;Abbott Company&lt;/Name&gt;</div>
<div>  &lt;/Account&gt;</div>
<div></div>
<div>These 18 and 15 character IDs represent the same Salesforce record retrieved via different mechamisms. When integrating Salesforce or using the Salesforce API, utilizing either the 15 or 18 characters ID is supported for querying or updating a specific record.</div>
<div></div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.wdcigroup.net/2012/05/salesforce-integration-the-15-18-character-alphanumeric-id/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

