<?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>RightNow Development Blog</title>
	<atom:link href="http://www.rightnow.com/devblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rightnow.com/devblog</link>
	<description>Development Blog</description>
	<lastBuildDate>Thu, 23 Feb 2012 19:46:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Knowledge Everywhere</title>
		<link>http://www.rightnow.com/devblog/2012/02/knowledge-everywhere/</link>
		<comments>http://www.rightnow.com/devblog/2012/02/knowledge-everywhere/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 17:20:02 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2012/02/knowledge-everywhere/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=587</guid>
		<description><![CDATA[We are fortunate to be living during a very exciting time. As I watch the world around me I’m seeing a major shift in the way people connect with each other, interact with companies and even the way devices are beginning to connect themselves to our networks. As people become more connected and the devices [...]]]></description>
			<content:encoded><![CDATA[<p>We are fortunate to be living during a very exciting time. As I watch the world around me I’m seeing a major shift in the way people connect with each other, interact with companies and even the way devices are beginning to connect themselves to our networks. As people become more connected and the devices they use become connect the need to make knowledge available on those devices and applications increases. RightNow has led the knowledge industry for nearly fourteen years and we have made this <a href="http://www.rightnow.com/cx-suite-knowledge-foundation.php" target="_blank">knowledge foundation</a> part of our solutions that extend through the <a href="http://www.rightnow.com/cx-suite-web-experience.php" target="_blank">web</a>, <a href="http://www.rightnow.com/cx-suite-social-experience.php" target="_blank">social </a>and <a href="http://www.rightnow.com/cx-suite-contact-center-experience.php" target="_blank">contact center</a> experiences. As we started to see the growing use of mobile and internet enabled devices we began to realize that people would want knowledge directly in those devices and mobile applications. We had the idea to make the RightNow knowledge foundation available to any external application, device or service that may want to embed knowledge and make it available at any time to users. To support this vision we began working on an API for the RightNow knowledge foundation and I’m proud to announce that with our February 2012 release the API is now generally available. So what is an API into the RightNow knowledge foundation?</p>
<p>The RightNow Connect Knowledge API exposes a set of operations that allow developers to search knowledge content, rate and rank content, obtain popular content and even Smart Assistant suggestions for supplied text. This allows a developer to rebuild a knowledge driven service experience into any internet enabled device, application or other service. In addition, as users interact with that knowledge driven service experience the artificial intelligence and self learning of the RightNow knowledge foundation will automatically occur. This ensures that relevant content stays at the top of the knowledgebase, related answers are maintained and all other aspects of learning in the RightNow knowledge foundation are updated. This type of API allows video game producers to embed contextually aware knowledge in their video games, mobile application developers can now build native knowledge into their applications and internet enabled devices such as cars can begin offering knowledge on embedded touch screens. The possibilities are endless.</p>
<p>We ran an extensive beta program for the Knowledge API and the feedback and results have been amazing. I have seen native mobile applications with embedded knowledge, worked with video game producers who are looking to embed knowledge into games and developers who are building knowledge into devices. What will you build?</p>
<p>For more information on the KF API you can see the documentation here: <a href="http://community.rightnow.com/developer/fileexchange/Connect_KFAPI_February_2012/Default.htm">http://community.rightnow.com/developer/fileexchange/Connect_KFAPI_February_2012/Default.htm</a></p>
<p>Let us know what you build!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2012/02/knowledge-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off to the Races</title>
		<link>http://www.rightnow.com/devblog/2012/02/off-to-the-races/</link>
		<comments>http://www.rightnow.com/devblog/2012/02/off-to-the-races/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 23:49:14 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2012/02/off-to-the-races/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=580</guid>
		<description><![CDATA[I often get questions from developers working with the RightNow Connect Add-In Framework on “strange” behavior they are seeing when working with record context data.  The problems are usually described as seeing an add-in function a certain way the first time it is loaded and never that way again. The exact opposite is sometimes described [...]]]></description>
			<content:encoded><![CDATA[<p>I often get questions from developers working with the <a href="http://community.rightnow.com/developer/fileexchange/Connect_AddIn_Framework_November_2011/Default.htm" target="_blank">RightNow Connect Add-In Framework</a> on “strange” behavior they are seeing when working with record context data.  The problems are usually described as seeing an add-in function a certain way the first time it is loaded and never that way again. The exact opposite is sometimes described as well, where a behavior is not seen the first time an add-in runs but it behaves as expected every other time it is run. 99% of the time, if not 100% of the time, I am able to describe what is wrong and fix the issue without ever seeing add-in code or the behavior myself. The problem always boils down to the developer not properly waiting for the DataLoaded event before attempting to work with the record context data. A simple fix for the developer is to add the following code and move the code that accesses the record context data to the event handler:<br />
<code><br />
public WorkspaceAddIn(bool inDesignMode, IRecordContext RecordContext)</code></p>
<p><code>{</p>
<p>_recordContext = RecordContext;</p>
<p>//Subscribe to data loaded event</p>
<p>_recordContext.DataLoaded += new System.EventHandler(_recordContext_DataLoaded);</p>
<p>}</p>
<p>void _recordContext_DataLoaded(object sender, System.EventArgs e)</p>
<p>{</p>
<p>//Move code to access record context here</p>
<p></code></p>
<p><code>}<br />
</code><br />
There are two important lessons to be learned here, the first hopefully has been taught. If you are working with add-ins and you are attempting to work with the record context data, wait for the DataLoaded event before you access the data. If you don’t do this you will see inconsistent behavior with the add-in.</p>
<p>The second is around race conditions in general. I have had the fortunate (or unfortunate depending on your perspective) pleasure of debugging a lot of race conditions in my time as a developer. The steps and process for finding and fixing these conditions are usually never the same but the symptoms usually are. If you think you have a race condition causing problems in your code a few indications to look for are: inconsistent behavior some of the time, you can reproduce it on one computer but not another, it only happens when the CPU is under load or it only happens when multiple users log into the system. Race conditions can be hard to diagnose, debug and fix, mainly due to the challenges in reproducing. However if you stick with it, leverage your support communities, work on a consistent reproduce and have another developer review the code with you a resolution will usually present itself. Leveraging these tactics can reduce the pain you may encounter around race conditions.</p>
<p>What else would you recommend to other developers who may encounter race conditions?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2012/02/off-to-the-races/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile App Tools</title>
		<link>http://www.rightnow.com/devblog/2012/01/mobile-app-tools/</link>
		<comments>http://www.rightnow.com/devblog/2012/01/mobile-app-tools/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 16:14:10 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2012/01/mobile-app-tools/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=573</guid>
		<description><![CDATA[As mobile device usage continues to grow, consumers increasingly expect to obtain great experiences on their mobile devices. In an effort to support organizations which are looking to offer a mobile experience RightNow has introduced a set of Mobile App Tools for developers. If you happened to attend any of our global user summits late [...]]]></description>
			<content:encoded><![CDATA[<p>As mobile device usage continues to grow, consumers increasingly expect to obtain great experiences on their mobile devices. In an effort to support organizations which are looking to offer a mobile experience RightNow has introduced a set of <a href="http://www.rightnow.com/developer-documentation-mobile-app-tools.php">Mobile App Tools</a> for developers. If you happened to attend any of our global user summits late last year you may have had the opportunity to see some of the great innovation people have done with these Mobile App Tools. We were demoing many of the numerous applications developers had built for a wide variety of mobile devices such as the iPad. These demos highlighted the ability to run RightNow Analytics reports, create incidents, look up organization details and much more.  In addition, innovative ideas around mobile and virtualization of the RightNow agent desktop were demonstrated.</p>
<p>If you are interested in mobile application development, whether that be native, hybrid or pure HTML5, you will want to check out our <a href="http://www.rightnow.com/developer-documentation-mobile-app-tools.php">Mobile App Tools</a>. These tools contain a number of Mobile Development Accelerators which help developers to start building mobile applications with RightNow CX quickly and efficiently. The accelerators contain information on  building hybrid applications using <a href="http://www.appcelerator.com/">AppCelerator Titanium</a>, CP Enhanced Mobile Applications, Hybrid Mobile Applications Using <a href="http://phonegap.com/">PhoneGap </a>and even a sample SMS Mobile Application. Using the power of the RightNow Connect APIs, the Mobile App Tools and a little creativity the possibility for mobile applications powered by RightNow CX are endless.</p>
<p>What will you build with the Mobile App Tools?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2012/01/mobile-app-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>December 2011 Hackathon</title>
		<link>http://www.rightnow.com/devblog/2011/12/december-2011-hackathon/</link>
		<comments>http://www.rightnow.com/devblog/2011/12/december-2011-hackathon/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 20:48:50 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/12/december-2011-hackathon/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=570</guid>
		<description><![CDATA[For all of you who may live in or around Burbank, CA you may be interested in participating in the LADOTNET Hackathon taking place tomorrow Saturday, December 10 from 9:00 AM to 6:30 PM! The Hackathon is being lead by RightNow partner Voxeo with projects focused on building voice and SMS applications with Voxeo, RightNow [...]]]></description>
			<content:encoded><![CDATA[<p>For all of you who may live in or around Burbank, CA you may be interested in participating in the LADOTNET Hackathon taking place tomorrow Saturday, December 10 from 9:00 AM to 6:30 PM! The Hackathon is being lead by RightNow partner Voxeo with projects focused on building voice and SMS applications with Voxeo, RightNow CX and other technologies. RightNow will be sponsoring an iPad prize during this hackathon so I’d encourage you all to get out there and throw your coding hat into the ring. RightNow’s own Cas Hoefman will be participating as one of the technical leads and is looking forward to meeting some new hackers in the area!</p>
<p>Best of luck!</p>
<p>For more details on the event check out <a href="https://lahack11.eventbrite.com/">https://lahack11.eventbrite.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/12/december-2011-hackathon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaining Tutorial Video</title>
		<link>http://www.rightnow.com/devblog/2011/11/chaining-tutorial-video/</link>
		<comments>http://www.rightnow.com/devblog/2011/11/chaining-tutorial-video/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:36:37 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/11/chaining-tutorial-video/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Connect Web Services]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=563</guid>
		<description><![CDATA[In my previous post I discussed an integration optimization technique known as chaining. Chaining can be used from the Connect Web Services for SOAP API to reduce the number of requests sent to the RightNow CX server. It allows developers to chain ID&#8217;s from one object to the next and create relationships between objects in [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.rightnow.com/devblog/2011/10/cwss-optimization-chaining/" target="_blank">previous post</a> I discussed an integration optimization technique known as chaining. Chaining can be used from the <a href="http://community.rightnow.com/developer/fileexchange/Connect_Web_Services_for_SOAP_August_2011/Default.htm" target="_blank">Connect Web Services for SOAP API</a> to reduce the number of requests sent to the RightNow CX server. It allows developers to chain ID&#8217;s from one object to the next and create relationships between objects in a single request. In the tutorial video posted here I demonstrate how developers can leverage the chaining capabilities in the Connect Web Services for SOAP API. This tutorial video demonstrates the creation of a new contact and new incident, linking the contact to the incident. This is all performed in a single request to the RightNow CX server.</p>
<p>Please note the sample code below falls under our <a href="http://www.rightnow.com/devblog/sample-code-legal-disclaimer/" target="_blank">Sample Code Legal Disclaimer</a>.</p>
<div class="mceTemp">
<dl id="attachment_117" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a class="floatbox" rev="width:810 height:700 scrolling:yes" href="http://www.rightnow.com/devblog/wp-content/uploads/chainingProject/chainingProject.html" target="_blank"><img class="size-medium wp-image-117" title="Play" src="http://www.rightnow.com/devblog/wp-content/uploads/video-new-identity.png" alt="Play Add-In Templates" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/11/chaining-tutorial-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CWSS Optimization: Chaining</title>
		<link>http://www.rightnow.com/devblog/2011/10/cwss-optimization-chaining/</link>
		<comments>http://www.rightnow.com/devblog/2011/10/cwss-optimization-chaining/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 16:25:30 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/10/cwss-optimization-chaining/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Connect Web Services]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=554</guid>
		<description><![CDATA[My last couple posts demonstrated how you could utilize ‘Batching’ to optimize your Connect Web Services integrations. Another optimization technique is called ‘Chaining’. Chaining allows you to chain id’s (foreign key references) from one operation into the next operation. A typical use case for chaining is when you want to create a new contact and [...]]]></description>
			<content:encoded><![CDATA[<p>My last couple posts demonstrated how you could utilize ‘Batching’ to optimize your Connect Web Services integrations. Another optimization technique is called ‘Chaining’. Chaining allows you to chain id’s (foreign key references) from one operation into the next operation. A typical use case for chaining is when you want to create a new contact and create a new incident for that contact. An incident requires you to set the id for the primary contact. However, if you are creating a new contact you don’t yet have the id for that contact. You could send in multiple requests, create the contact and get the id through the return value and then send a second request to create the incident. While this will work it is rather inefficient, there is a lot of overhead in sending multiple request. When possible it’s usually a good practice to limit the number of requests you need to send to the server. This is where chaining comes in. We can actually send the create contact and the create incident in a single request and ‘chain’ the contact id into the incident primary contact field. So, how does one actually ‘chain’ id’s between operations? To do this we use something called <a href="http://community.rightnow.com/developer/fileexchange/Connect_Web_Services_for_SOAP_August_2011/Content/Web%20Service%20API/Objects/Core/ChainSourceID.html" target="_blank">ChainSourceId</a> and <a href="http://community.rightnow.com/developer/fileexchange/Connect_Web_Services_for_SOAP_August_2011/Content/Web%20Service%20API/Objects/Core/ChainDestinationID.html" target="_blank">ChainDestinationId</a>. ChainSourceId and ChainDestinationId allow you to set a variable name field. When you create the first object you assign the id field to new ChainSourceId object and give it a variable name. Then when you create the second object you set the foreign key field to a ChainDestinationId, using the same variable name from the ChainSourceId. For the example I gave above for a new contact and new incident it would look something like this in C#.</p>
<p style="text-align: center;"><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/10/chainingCode.png"><img class="aligncenter size-full wp-image-555" title="chainingCode" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/10/chainingCode.png" alt="chainingCode" width="616" height="425" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">The code above could then be past as part of a Batch request or as part of a standard bulk Create request. In the next blog post I will include a video of chaining in action. In the mean time I suggest reviewing the <a href="http://community.rightnow.com/developer/fileexchange/Connect_Web_Services_for_SOAP_August_2011/Default.htm" target="_blank">Connect Web Services for SOAP</a> documentation on <a href="http://community.rightnow.com/developer/fileexchange/Connect_Web_Services_for_SOAP_August_2011/Content/Web%20Service%20API/Operational%20Behavior/Operational%20Overview.htm#Chaining" target="_blank">Chaining</a>.</p>
<p style="text-align: left;">Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/10/cwss-optimization-chaining/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batching &amp; Transactions Tutorial Video</title>
		<link>http://www.rightnow.com/devblog/2011/08/batching-transactions-tutorial-video/</link>
		<comments>http://www.rightnow.com/devblog/2011/08/batching-transactions-tutorial-video/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 23:12:12 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/08/batching-transactions-tutorial-video/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=528</guid>
		<description><![CDATA[As promised in my previous post, Connect Web Service Optimization: Understanding Batching, I have created a tutorial video that will guide you through creating a batch request and creating transaction boundaries within that request. In this video I first show creating a contact through a batch request. I then extend on this example by adding [...]]]></description>
			<content:encoded><![CDATA[<p>As promised in my previous post, <a href="http://www.rightnow.com/devblog/2011/07/connect-web-service-optimization-understanding-batching/" target="_blank">Connect Web Service Optimization: Understanding Batching</a>, I have created a tutorial video that will guide you through creating a batch request and creating transaction boundaries within that request. In this video I first show creating a contact through a batch request. I then extend on this example by adding a second create to the batch request. Initially the second create operation will fail and cause the first create request in the batch to be rolled back. Finally, I add a transaction boundary between the operations so they can act independent of one another. The video is a little longer than my normal videos but it does demonstrate a lot capabilities!</p>
<p>Enjoy and stay tuned for more videos and optimization techniques as well as August 2011 release highlights!</p>
<p>Please note the sample code below falls under our <a href="http://www.rightnow.com/devblog/sample-code-legal-disclaimer/" target="_blank">Sample Code Legal Disclaimer</a>.</p>
<div class="mceTemp">
<dl id="attachment_117" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a class="floatbox" rev="width:810 height:700 scrolling:yes" href="http://www.rightnow.com/devblog/wp-content/uploads/BatchTransaction/BatchTransaction.html" target="_blank"><img class="size-medium wp-image-117" title="Play" src="http://www.rightnow.com/devblog/wp-content/uploads/video-new-identity.png" alt="Play Add-In Templates" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/08/batching-transactions-tutorial-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connect Web Service Optimization: Understanding Batching</title>
		<link>http://www.rightnow.com/devblog/2011/07/connect-web-service-optimization-understanding-batching/</link>
		<comments>http://www.rightnow.com/devblog/2011/07/connect-web-service-optimization-understanding-batching/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 21:15:28 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/07/connect-web-service-optimization-understanding-batching/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Connect Web Services]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=477</guid>
		<description><![CDATA[The Connect Web Services for SOAP API offers a number of different options for optimizing your integrations. Over the course of the next few weeks I will discuss a number of these optimization techniques and demonstrate how they can be utilized. To begin we will start with something known as batching. Batching allows multiple operations, [...]]]></description>
			<content:encoded><![CDATA[<p>The Connect Web Services for SOAP API offers a number of different options for optimizing your integrations. Over the course of the next few weeks I will discuss a number of these optimization techniques and demonstrate how they can be utilized. To begin we will start with something known as batching. Batching allows multiple operations, such as Create, Update and SendMailingToContact, to be sent to the RightNow CX server in a single request. In addition to reducing the number of requests over the network and server processing time, batching also allows developers to define their own transaction boundaries within the batch request. Transactions boundaries group a set of operations together, when these operations are grouped together they either all succeed or all fail. This gives integration developers the ability to group operations together and ensure they are only committed if all other dependent operations are completed successfully. Transactions operate independent of other transactions, meaning if one transaction fails, transactions which executed before the failure or transactions set to execute after the failure are unaffected. It is only the operations within a failed transaction that are affected. Let’s take a look at batching through some visualizations.</p>
<p>The following image represents a set of operations being sent to RightNow CX using batching. When building a batch request, the ‘CommitAfter’ attribute can be set, when set this defines the end of a transaction. The batch queue displayed below contains three independent transactions. The first transaction is called out in blue, the second in green and the third in grey. Note that there is an implicit ‘CommitAfter’ at the end of the batch queue.</p>
<p><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/fullBatchQueueAllTransactions.png"><img class="size-large wp-image-481" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/fullBatchQueueAllTransactions-1024x211.png" alt="Full Batch Queue All Transactions" width="575" height="211" /></a></p>
<p>When the RightNow CX server receives this request it will begin by processing the operations contained within the first transaction (blue). Assuming all operations are successful, each operation will be committed to the database. At this point the second (green) and third (grey) transaction will not have been processed.</p>
<p><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/firstTransactionBatchQueue.png"><img class="aligncenter size-full wp-image-479" title="First Transaction" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/firstTransactionBatchQueue.png" alt="First Transaction" width="538" height="311" /></a></p>
<p align="center">
<p>After the first transaction is committed the server will begin processing the second transaction. Let’s assume the first two operations (Destroy and Create) succeed but the third operation (Create) fails. The state of the request would look like the following:</p>
<p><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/secondTransactionFailBatchQueue.png"><img class="aligncenter size-full wp-image-478" title="Second Transaction Fail" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/secondTransactionFailBatchQueue.png" alt="Second Transaction Fail" width="575" height="452" /></a></p>
<p align="center">
<p>When the Create operation in the second transaction fails, all prior operations in that transaction are rolled back, operations in the transaction which have not been executed will not execute. The state of the request would then look like the following:</p>
<p><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/secondTransactionBatchQueue.png"><img class="aligncenter size-large wp-image-482" title="Second Transaction After Failure" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/secondTransactionBatchQueue-1024x517.png" alt="Second Transaction After Failure" width="575" height="517" /></a></p>
<p align="center">
<p>The server will then begin processing the third (grey) and final transaction. This transaction, as well as the first (blue) transaction are unaffected by the failure within the second transaction. The resulting request finished with the following:</p>
<p><a href="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/fullBatchQueue.png"><img class="aligncenter size-large wp-image-480" title="Full Batch Queue" src="http://www.rightnow.com/devblog/wp-content/uploads/2011/07/fullBatchQueue-1024x386.png" alt="Full Batch Queue" width="575" height="386" /></a></p>
<p>Utilizing batching from your integrations gives you the advantage of reduced overhead as well as the ability to create and define your own transactional boundaries. Hopefully this post gave you an understanding of how these transactions affect operation execution. In the next post I will demonstrate how you can create a batch request from your client integrations. For more details on optimizing your integrations when using Connect Web Services for SOAP the<a href="http://communities.rightnow.com/posts/36707aed00" target="_blank"> Optimizing Connect Web Services</a> presentation from this year&#8217;s RightNow Developer Conference and stay tuned for additional posts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/07/connect-web-service-optimization-understanding-batching/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Overriding Report Filter Operators</title>
		<link>http://www.rightnow.com/devblog/2011/06/overriding-report-filter-operators/</link>
		<comments>http://www.rightnow.com/devblog/2011/06/overriding-report-filter-operators/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 15:51:38 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/06/overriding-report-filter-operators/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=468</guid>
		<description><![CDATA[Yesterday I posted a video on running a RightNow Analytics report from Connect Web Services for SOAP. Today I have another video that demonstrates how you can override a filter operator value from the API. This is an extremely powerful feature of this capability, allowing developers to change results of a report at run-time. Please [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I posted a video on running a <a href="http://www.rightnow.com/devblog/2011/06/running-reports-with-cwss/" target="_blank">RightNow Analytics report from Connect Web Services for SOAP</a>. Today I have another video that demonstrates how you can override a filter operator value from the API. This is an extremely powerful feature of this capability, allowing developers to change results of a report at run-time. Please note, this video picks up where yesterdays video left off, so if you haven&#8217;t watched that video please do so before viewing this one.</p>
<p>Enjoy and let me know if you have any questions.</p>
<p>Please note the sample code below falls under our <a href="http://www.rightnow.com/devblog/sample-code-legal-disclaimer/" target="_blank">Sample Code Legal Disclaimer</a>.</p>
<div class="mceTemp">
<dl id="attachment_117" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a class="floatbox" rev="width:810 height:700 scrolling:yes" href="http://www.rightnow.com/devblog/wp-content/uploads/OverrideReportFilters/OverrideReportFilters.html" target="_blank"><img class="size-medium wp-image-117" title="Play" src="http://www.rightnow.com/devblog/wp-content/uploads/video-new-identity.png" alt="Play Add-In Templates" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/06/overriding-report-filter-operators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Reports with CWSS</title>
		<link>http://www.rightnow.com/devblog/2011/06/running-reports-with-cwss/</link>
		<comments>http://www.rightnow.com/devblog/2011/06/running-reports-with-cwss/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 19:35:41 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.rightnow.com/devblog/2011/06/running-reports-with-cwss/">Chris Omland</span></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Connect Web Services]]></category>

		<guid isPermaLink="false">http://www.rightnow.com/devblog/?p=462</guid>
		<description><![CDATA[A couple weeks back I posted about the new enhancements we introduced to the public APIs with the May 2011 release. One of those enhancements was the ability to run an analytics report from the APIs. This is a great feature, as a developer can now write an integration/extension that can be modified simply by [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks back I posted about the <a href="http://www.rightnow.com/devblog/2011/05/rightnow-cx-may-2011/">new enhancements</a> we introduced to the public APIs with the May 2011 release. One of those enhancements was the ability to run an analytics report from the APIs. This is a great feature, as a developer can now write an integration/extension that can be modified simply by changing a report definition from within RightNow CX. The following is a short tutorial video to help you get started using this new feature. Tomorrow, I will publish a follow up video that demonstrates how you can override run-time filters.</p>
<p>Enjoy and let me know if you have any questions.</p>
<p>Please note the sample code below falls under our <a href="http://www.rightnow.com/devblog/sample-code-legal-disclaimer/" target="_blank">Sample Code Legal Disclaimer</a>.</p>
<div class="mceTemp">
<dl id="attachment_117" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a class="floatbox" rev="width:810 height:700 scrolling:yes" href="http://www.rightnow.com/devblog/wp-content/uploads/RunReportBasic/RunReportBasic.html" target="_blank"><img class="size-medium wp-image-117" title="Play" src="http://www.rightnow.com/devblog/wp-content/uploads/video-new-identity.png" alt="Play Add-In Templates" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rightnow.com/devblog/2011/06/running-reports-with-cwss/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

