<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4516345760646976347</id><updated>2024-09-06T13:12:13.381+10:00</updated><category term="SQL SERVER"/><category term="SSRS;Excel render; Reporting Services"/><category term="Visualforce; Charts; Salesforce; telerik kendo ui"/><title type='text'>Lukes Solutions Development Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-5558537653898479670</id><published>2016-01-27T20:54:00.004+11:00</published><updated>2016-01-27T21:34:45.876+11:00</updated><title type='text'>Salesforce - working with large paging sets greater then 2000</title><content type='html'>&lt;br /&gt;
&lt;b&gt;The Use Case :&lt;/b&gt;&amp;nbsp;You have a visual force page/s that need to display large amounts of data, possible hundreds of thousands of records.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Problem :&lt;/b&gt; SOQL limits and other force.com limits would prevent you from return large amounts of data to a page in one hit.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Solution : &lt;/b&gt;To solve this problem we can make remote calls either synchronously or asynchronously to return the data in smaller chucks. This can be achieved by ensuring the following:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;passing your remote method the id of the last record in the last retrieved record set and using that as the starting point to retrieve the next set of records in your &lt;b&gt;where&lt;/b&gt; clause.&lt;/li&gt;
&lt;li&gt;Order the records by Id&lt;/li&gt;
&lt;li&gt;Setting a limit of the number of records that are returned.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
eg&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;@RemoteAction @ReadOnly&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public static List&lt;costdistline__c&gt; GetCostDistLines(String projectId, Id offsetId) // projectNum)&lt;/costdistline__c&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String offsetIdSearch = (offsetId==null)?&#39;0&#39;:offsetId;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [select id&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;//, GLDate__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //, GLPeriodName__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , PADate__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , PAPeriodName__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.Quantity__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , Name&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.PersonId__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.ExpenditureType__c, ExpenditureItem__r.Name&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.VendorId__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.UOM__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.ProjectTask__r.Name&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.ProjectTask__r.ProjectTaskNumber__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ExpenditureItem__r.ProjectTask__r.Id&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from CostDistLine__c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //where ExpenditureItem__r.ProjectTask__r.ProjectNumber__c = :projectNum];&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where ExpenditureItem__r.ProjectTask__r.pse__Project__r.Id = :projectId and&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Id &amp;gt; :offsetIdSearch ORDER BY Id ASC LIMIT 10000];&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0b5394; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/5558537653898479670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2016/01/salesforce-working-with-large-paging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5558537653898479670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5558537653898479670'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2016/01/salesforce-working-with-large-paging.html' title='Salesforce - working with large paging sets greater then 2000'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-4922328679909366626</id><published>2015-10-20T13:43:00.000+11:00</published><updated>2015-10-21T13:30:52.301+11:00</updated><title type='text'>Fix Visualforce Sidebar and Header when using Bootstrap</title><content type='html'>&lt;h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The Problem &lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;When using Bootstrap on a visualforce page with a sidebar and header showing you will undoubtedly notice that the styling of the sidebar and header will have changed to something rather undesirable. This is because Bootstrap is overriding some of the &lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;salesforce &lt;/span&gt;styling like the body text size. See the difference below, the left side is the undesirable bootstrap version.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJySn12uROugoQsqh3mUy2VfU0mRs6CVue0fXwU6COEKTlzxgYdBTXL4vcF2YeLUiuMLi-Kogq8a_TqvS2rqQPr4pGlBAU5sNZmo7MhiT1DmmaeHQHGAr6_3JFsEUISGVygKUjiJHfhjk/s1600/Bootstrap+style.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJySn12uROugoQsqh3mUy2VfU0mRs6CVue0fXwU6COEKTlzxgYdBTXL4vcF2YeLUiuMLi-Kogq8a_TqvS2rqQPr4pGlBAU5sNZmo7MhiT1DmmaeHQHGAr6_3JFsEUISGVygKUjiJHfhjk/s400/Bootstrap+style.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Thankfully there is a way around this issue though it will involve compiling your own version of Bootstrap to use your own custom namespace.&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Prerequisites&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;There are a few thing you will need for this exercise:&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;download the Bootstrap source code - you can get this from the &lt;a href=&quot;http://getbootstrap.com/getting-started/#download&quot;&gt;bootstrap download page&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;node.js - You will need to &lt;a href=&quot;https://nodejs.org/&quot;&gt;download and install node.js&lt;/a&gt; to get and run grunt.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt &lt;/a&gt;- Grunt is what you need to build/compile and test Bootstrap. To install grunt&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; globally &lt;/span&gt;&lt;/span&gt; from the node.js command line &lt;span style=&quot;font-size: small;&quot;&gt;run the following&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;code&gt;npm install -g grunt-cli&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Now What&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Now that we have bootstrap, node.js and grunt we can alter bootstrap to include a custom namespace so that our visualforce paged can differentiate between when/where to use salesforce css and&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; when/where to use bootstrap css.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Follow the following steps: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;In node.js command line&amp;nbsp; navigate to the root &lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;code&gt;/bootstrap/&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; directory, then run &lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;. npm will look at the &lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;code&gt;package.json&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; file and automatically install the necessary local dependencies listed there&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;From the bootstrap source open&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt; &lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;/less/bootstrap.less &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;wrap the contents of &lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;/less/bootstrap.less&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt; in a class like .bs{}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;eg&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;
&lt;/span&gt;&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
.bs
{
   // Core variables and mixins
   @import &quot;variables.less&quot;;
   @import &quot;mixins.less&quot;;
]]&gt;&lt;/script&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;still in node.js command line &lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;and &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;root &lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;code&gt;/bootstrap/&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; directory run &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;grunt&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; or &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;grunt dist&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;. &lt;span style=&quot;color: black;&quot;&gt;This&amp;nbsp; will regenerate the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;/dist/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; directory&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;Zip the contents of&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;/dist/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; directory and upload to the salesforce static resources.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Now you can wrap only the content you want affected by bootstrap style in a tag with a bs class like below.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
&lt;apex:page showHeader=&quot;true&quot; sidebar=&quot;true&quot;  standardStylesheets=&quot;true&quot;&gt;
&lt;html&gt;
 &lt;head&gt;
  &lt;apex:stylesheet value=&quot;{!URLFOR($Resource.Bootstrap3_3_5_Namespaced, &#39;css/bootstrap.min.css&#39;)}&quot; /&gt;
  &lt;apex:includeScript value=&quot;{!URLFOR($Resource.Bootstrap3_3_5_Namespaced, &#39;js/bootstrap.min.js&#39;)}&quot;/&gt;
 &lt;/head&gt;
 &lt;body class=&quot;bs&quot;&gt;
  &lt;!-- ONLY THIS STUFF NOW USES BOOTSTRAP STYLE 
 &lt;/body&gt;
]]&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/4922328679909366626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2015/10/visualforce-sidebar-and-header-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4922328679909366626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4922328679909366626'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2015/10/visualforce-sidebar-and-header-with.html' title='Fix Visualforce Sidebar and Header when using Bootstrap'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJySn12uROugoQsqh3mUy2VfU0mRs6CVue0fXwU6COEKTlzxgYdBTXL4vcF2YeLUiuMLi-Kogq8a_TqvS2rqQPr4pGlBAU5sNZmo7MhiT1DmmaeHQHGAr6_3JFsEUISGVygKUjiJHfhjk/s72-c/Bootstrap+style.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-4537997567936745563</id><published>2015-10-16T12:58:00.001+11:00</published><updated>2015-10-19T12:56:14.181+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce; Charts; Salesforce; telerik kendo ui"/><title type='text'>Using Telerik kendo ui charts in salesforce</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Salesforces provides a wide range of reporting and charting capabilities out-of-the-box like&amp;nbsp;Salesforce1 / Lightning Reports and Dashboards for business users and Visaulforce Charts for developers&amp;nbsp;that provide useful tooling in a wide of business cases. For the situations where you find salesforce just can provide what you need&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;OOB&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;you can fall back on an&amp;nbsp;alternative&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;chart library&amp;nbsp;such as google charts, highcharts, jscharts etc.... to extend salesforces already&amp;nbsp;probabilities. In this case&amp;nbsp;i&#39;m&amp;nbsp;going to show how to use &#39;Telerik Kendo UI&#39;&amp;nbsp;to extend your charting needs to build a multi axis double line / double bar chart like the following.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRDb2BpVsznqYQX3lx_bh69DhNEhyphenhyphenY04guH1B034rTDwW8TNvI4rDdM6p_CCRysgo5d3-AH656VJE6KMiaVja-wJaQpIzS46KDLKigTO4liFBT-CeUVUf2q9RwT19AO8YyiHsCwZ3Nq91/s1600/MultiAxis.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRDb2BpVsznqYQX3lx_bh69DhNEhyphenhyphenY04guH1B034rTDwW8TNvI4rDdM6p_CCRysgo5d3-AH656VJE6KMiaVja-wJaQpIzS46KDLKigTO4liFBT-CeUVUf2q9RwT19AO8YyiHsCwZ3Nq91/s1600/MultiAxis.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;


&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Why&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Telerik Kendo UI?&lt;/span&gt;&lt;/div&gt;
&lt;/h4&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are plenty of good and free charting libraries out there so why do i like&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Telerik Kendo UI charts. Heres a few reason why Kendo UI might be a good idea for your charting project:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Out-of-the-box themes and a theme builder.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Localization and Globalization support.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;In-depth documentation on getting started and APIs.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Detailed demos.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Pretty much any chart type you can dream of as well as the ability to mix and match them&amp;nbsp;different&amp;nbsp;types into the one chart.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Screen&amp;nbsp;size adaptive.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Great browser support even for OLD browser as old as IE7&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Great product&amp;nbsp;support, Telerik actually response (and fast) to issues&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Getting Setup&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Firstly we need to get Kendo UI from Telerik. You can download the a trail version from &lt;a href=&quot;http://www.telerik.com/kendo-ui&quot;&gt;http://www.telerik.com/kendo-ui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;With Kendo UI &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;downloaded package &amp;nbsp;the following files into a zip file called KendoUi:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;js/jquery.min.js&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;js/kendo.all.min.js&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;style/kendo.common.min.css&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;style/kendo.default.min.css&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Upload the zipfile to the static resources calling the resource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;KendoUi.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The Code&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;In this example we are going to use a remote action to get our data and to return a JSON response to the client to process the chart. Create a new class named MultiAxis_Controller, this class class will be used as our controller for a page or component. Create an empty constructor and a remote action that returns the data results you want to chow in your chart.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;i&gt;For example&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
 global class MultiAxis_Controller {

     public MultiAxis_Controller(){}

    
    @RemoteAction
    global static List&lt;projectsnapshot__c&gt; ProjectSnapshot(String projectNum)
    {
        
        Id projectId = projectNum;
        
        return [SELECT      id, SnapshotDate__c,Project__c, ProjectNumber__c, CostITD__c
                       ,CostMonthToDate__c, CostYearToDate__c, NMNSRITD__c
                FROM            ProjectSnapshot__c
                WHERE Project__c = :projectId  AND SnapshotDate__c = LAST_N_MONTHS:6];
    }
}
]]&gt;&lt;/script&gt;

&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Create a new page or component&amp;nbsp; that sets MultiAxis_Controller as the controller.&amp;nbsp; For the porpose of this example I&#39;ve created a component and will set a required projectId attribute to the component to we can forward this value onto our remote action call later on.. &lt;/span&gt;&lt;br /&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
&lt;apex:component controller=&quot;MultiAxis_Controller&quot;&gt;
    &lt;apex:attribute name=&quot;projectId&quot; description=&quot;Project Number&quot; type=&quot;String&quot; required=&quot;true&quot; /&gt; 
&lt;/apex:component&gt;
]]&gt;&lt;/script&gt;

&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Now we need to include the 2 kendo ui js files and style sheets to the component that we previously uploaded to the static resources.&lt;/span&gt;&lt;br /&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
     &lt;apex:includeScript value=&quot;{!URLFOR($Resource.KendoUi, &#39;KendoUi/js/jquery.min.js&#39;)}&quot;/&gt;
     &lt;apex:includeScript value=&quot;{!URLFOR($Resource.KendoUi, &#39;KendoUi/js/kendo.all.min.js&#39;)}&quot;/&gt;
     &lt;apex:stylesheet value=&quot;{!URLFOR($Resource.KendoUi, &#39;KendoUi/style/kendo.common.min.css&#39;)}&quot; /&gt; 
     &lt;apex:stylesheet value=&quot;{!URLFOR($Resource.KendoUi, &#39;KendoUi/style/kendo.default.min.css&#39;)}&quot; /&gt;
]]&gt;&lt;/script&gt;

&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Add a div to component with an id of &#39;chart&#39;. This div will be where kendo ui will build it charting output.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
&lt;div id=&quot;chart&quot; width=&#39;100%&#39;&gt;
&lt;/div&gt;
]]&gt;&lt;/script&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Do define the charts attributes such as its series and axes add the following javascript to the bottom of the component&lt;/span&gt;&lt;br /&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
function createChart() {
    $(&quot;#chart&quot;).kendoChart({
        resizable: true,
        chartArea: {
            height: 250
        },
        legend: {
            position: &quot;top&quot;
        },
        series: [{
            type: &quot;column&quot;,
            data: CostMonthToDateData,
            stack: false,
            name: &quot;Cost Plan MTD&quot;,
            color: &quot;#99CCFF&quot;,
            axis: &quot;MTD&quot;
        }, {
            type: &quot;column&quot;,
            data: CostYearToDateData,
            stack: false,
            name: &quot;Cost MTD&quot;,
            color: &quot;#FF9933&quot;,
            axis: &quot;MTD&quot;
        }, {
            type: &quot;line&quot;,
            data: CostITDData,
            name: &quot;Cost Plan ITD&quot;,
            color: &quot;#99CC00&quot;,
            axis: &quot;ITD&quot;
        }, {
            type: &quot;line&quot;,
            data: NMNSRITDDate,
            name: &quot;Cost ITD&quot;,
            color: &quot;#CC33FF&quot;,
            axis: &quot;ITD&quot;
        }],
        valueAxes: [{
            name: &quot;MTD&quot;,
            title: { text: &quot;MTD - USD&quot; }
        }, {
            name: &quot;ITD&quot;,
            title: { text: &quot;ITD - USD&quot; }
        }],
        categoryAxis: {
            categories: categoryData,
            axisCrossingValues: [0, 10]
        },
        tooltip: {
            visible: true,
            format: &quot;{0}%&quot;,
            template: &quot;#= series.name #: #= value #&quot;
        }
    });
}
]]&gt;&lt;/script&gt;

&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A quick glance we can see that we will are adding a chart to the the div tag called &#39;chart&#39; and setting that we have 4 data series. for example we have set the two of the series are defined as columns by setting the series type to &#39;column&#39; we have also defined the two column series to be bound against the axis called &#39;MTD&#39;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Notice we have not yet defined the data variables for our 4 series and category axis (ie CostMonthToDateData,CostYearToDateData, CostITDData, NMNSRITDDate and categoryData). We now need to define our data variables and fill them with the data that will be retrieved from a&amp;nbsp; remote call to to remote action that recreated earlier on.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;script class=&quot;brush: html&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
var CostITDData = [];
var CostMonthToDateData = [];
var CostYearToDateData = [];
var NMNSRITDDate = [];
var categoryData = [];
MultiAxis_Controller.ProjectSnapshot(
    &#39;{!projectId}&#39;,
    function (result, event) {
        if (event.status) {

            $.each(result, function (di, de) {

                CostITDData.push(de.CostITD__c);
                CostMonthToDateData.push(de.CostMonthToDate__c);
                CostYearToDateData.push(de.CostYearToDate__c);
                NMNSRITDDate.push(de.CostITD__c + 1000);
                categoryData.push(getFormattedDate(de.SnapshotDate__c));
            });
            $(document).ready(createChart);
        }
    }
);
]]&gt;&lt;/script&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;

This java script simply defines 5 data arrays, calls the remote action MultiAxis_Controller.ProjectSnapshot in our controller then loops through the results and populates each of the arrays. After we have all the data we require create the chart with $(document).ready(createChart);
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/4537997567936745563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2015/10/using-telerik-kendo-ui-charts-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4537997567936745563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4537997567936745563'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2015/10/using-telerik-kendo-ui-charts-in.html' title='Using Telerik kendo ui charts in salesforce'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRDb2BpVsznqYQX3lx_bh69DhNEhyphenhyphenY04guH1B034rTDwW8TNvI4rDdM6p_CCRysgo5d3-AH656VJE6KMiaVja-wJaQpIzS46KDLKigTO4liFBT-CeUVUf2q9RwT19AO8YyiHsCwZ3Nq91/s72-c/MultiAxis.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-2711563478491163936</id><published>2013-08-09T11:34:00.000+10:00</published><updated>2013-08-09T11:34:05.627+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER"/><title type='text'>SQL Server - Executing Very long querys from a string</title><content type='html'>We have been linking out SQL servers to oracle lately as a mean of working around a particular issue which I will not go into. We have been needing to run oracle query&amp;nbsp;from the linked server by wrapping the oracle queries in a string then using the &#39;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;EXECUTE &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;@query&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; AT [LINKED SERVER NAME&#39;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
If the oracle query is less then 4000 characters the following would work:&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;declare&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; @query &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;nvarchar&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;max&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;)&amp;nbsp; =&amp;nbsp; &#39;[a smaller then 4000 char oracle SQL]&amp;nbsp;&#39; + &#39;[Some more parts of the statement]&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;EXECUTE &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;@query&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; AT [LINKEDSERVER]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black; font-size: small;&quot;&gt;Now as soon as the SQL statement is larger then 4000 characters you will begin to see errors when executing the statements. This is because when we concatenated the two strings in the above statement they concatenate into nvarchar(4000) in stead of nvarchar(max). To work around this issue cast all stings into nvarchar(max):&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;declare&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; @query &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;nvarchar&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;max&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;CAST&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&#39;some sql&#39;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;nvarchar&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;max&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;+&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;CAST&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&#39;some other sql&#39;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;nvarchar&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: magenta; font-size: x-small;&quot;&gt;max&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;EXECUTE &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;@query&lt;/span&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; AT [LINKEDSERVER]&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-size: small;&quot;&gt;Voilà, we can now run excessively long queries from a string using EXECUTE.&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/2711563478491163936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2013/08/sql-server-executing-very-long-querys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/2711563478491163936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/2711563478491163936'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2013/08/sql-server-executing-very-long-querys.html' title='SQL Server - Executing Very long querys from a string'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-2731832087990519240</id><published>2012-09-09T10:05:00.001+10:00</published><updated>2012-09-09T10:05:26.832+10:00</updated><title type='text'>Copy SharePoint Designer workflow 2010</title><content type='html'>&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;I think of SharePoint designer workflow&amp;nbsp;as more of a end user tool rather then a&amp;nbsp;developer tool, for something a bit more helpful for developers look at K2 or Nintex. &amp;nbsp;Thou if you need to update a production&amp;nbsp;SharePoint designer workflow here are the steps that would recommend to making the changes&amp;nbsp;off line on a development environment and deploying to production or test.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; line-height: 16px;&quot;&gt;Do a Database content migration of the &amp;nbsp;site collection that contain your workflow to you dev&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; line-height: 16px;&quot;&gt;environment&lt;/span&gt;&lt;span style=&quot;background-color: white; line-height: 16px;&quot;&gt;. Doing this will ensure all of the GUID&#39;s in the background are the exact same a production.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;Update your workflow and associated infopath form (if any) in Dev&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;Now, before moving &amp;nbsp;to your test or prod environment I would highly recommend backing up you&amp;nbsp;SharePoint&amp;nbsp;area that we are updating as a just in case&amp;nbsp;precaution.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;Publish your infopath form to production site.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;Open dev&amp;nbsp;SharePoint&amp;nbsp;and prod&amp;nbsp;SharePoint&amp;nbsp;in&amp;nbsp;SharePoint&amp;nbsp;designer and copy your workflows&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.&lt;/span&gt;XOML&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;and .&lt;/span&gt;XOML&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.RULES &amp;nbsp;files from dev to prod.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Close and reopen the prod&amp;nbsp;SharePoint&amp;nbsp;designer. This forces the designer to&amp;nbsp;pick up&amp;nbsp;the new changes. I find with out this step&amp;nbsp;SharePoint&amp;nbsp;designer shows the old workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Open the workflow and validate that there are no missing action data.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Publish the workflow&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Hey presto,&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/2731832087990519240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/09/copy-sharepoint-designer-workflow-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/2731832087990519240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/2731832087990519240'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/09/copy-sharepoint-designer-workflow-2010.html' title='Copy SharePoint Designer workflow 2010'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-4470481315752605894</id><published>2012-09-05T21:44:00.004+10:00</published><updated>2012-09-05T21:44:43.565+10:00</updated><title type='text'>WSP Deployment stuck in &quot;Deploying&quot; state</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;While updating a wsp package in &amp;nbsp;noticed the package was stuck in &quot;deploying&quot; state for a few hours. Think this was a little to long i ran the follow command:&lt;/span&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: blue; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: blue; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;stsadm -o execadmsvcjobs&lt;/b&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 18px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;Its now as happy as Larry&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/4470481315752605894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/09/wsp-deployment-stuck-in-deploying-state.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4470481315752605894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4470481315752605894'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/09/wsp-deployment-stuck-in-deploying-state.html' title='WSP Deployment stuck in &quot;Deploying&quot; state'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-4111786343715355801</id><published>2012-08-24T19:59:00.005+10:00</published><updated>2012-08-24T19:59:59.936+10:00</updated><title type='text'>Lightswitch and Left Outer Join</title><content type='html'>&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Ever needed to do a left outer join in a lightswitch App using linq? Yes, well its pretty simple. Just add &amp;nbsp;&lt;span style=&quot;background-color: yellow;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;DefaultIfEmpty()&lt;/span&gt; to any join object that requires the left outer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;query = from pp in query&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;from pbl in pp.ProjectBusinessLines.&lt;span style=&quot;background-color: yellow;&quot;&gt;DefaultIfEmpty()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;from s in pbl.ProjectBusinessLineServices&lt;span style=&quot;background-color: yellow;&quot;&gt;.DefaultIfEmpty()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;where pp.ProjectSummary.Contains(KeyWordSearch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;|| pp.CompanyName.Contains(KeyWordSearch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;|| pp.ProjectName.Contains(KeyWordSearch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;|| pbl.OurRole.Contains(KeyWordSearch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;|| pp.Location.Contains(KeyWordSearch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;|| s.Service.ServiceName.Contains(KeyWordSearch) &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;select pp;&lt;/span&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/4111786343715355801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/lightswitch-and-left-outer-join.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4111786343715355801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/4111786343715355801'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/lightswitch-and-left-outer-join.html' title='Lightswitch and Left Outer Join'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-8342555849211982710</id><published>2012-08-23T12:34:00.002+10:00</published><updated>2013-05-08T09:00:12.142+10:00</updated><title type='text'>Very Sleepy SharePoint Workflow Pauses</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Ahh, the dreaded sleepy 5 minute&amp;nbsp;SharePoint&amp;nbsp;workflow action pause that takes days even weeks to complete.&amp;nbsp;Classic symptom of this problem in the workflow history logs reveals a quite unhelpfully &amp;nbsp;message such as&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;[Workflow Name]failed to run&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The one helpful thing the error in the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;workflow history logs&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;does give is the time of the error. Using this error time&amp;nbsp;I&amp;nbsp;would suggest to go though the&amp;nbsp;SharePoint&amp;nbsp;event logs of each server and find out which server servers that this error occurs on. In my case this was&amp;nbsp;occurring&amp;nbsp;only on a&amp;nbsp;front&amp;nbsp;end server that we had set up to to only serve search index requests. it appeared that every workflow that tried to run on this server in OWSTimer was&amp;nbsp;basically&amp;nbsp;spewing out a error message then &amp;nbsp;putting the putting the workflow back to sleep.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The errors it spews out are:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Workflow Compile Failed while loading AuthorizedTypes from config: Configuration system failed to initialize&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;and&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;RunWorkflow: Microsoft.SharePoint.SPException: Configuration system failed to initialize &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.SubCompiler.DoCompile(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.SubCompiler.DoCompile(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.&amp;lt;&amp;gt;c__DisplayClasse.&lt;docompilenewappdomain&gt;b__c() &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.DoCompileNewAppDomain(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, SPWeb web, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeHostServices.LoadDeclarativeAssembly(SPWorkflowAssociation association) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeHostServices.CreateInstance(SPWorkflow workflow) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(SPWorkflowHostService host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection`1 events, SPWorkflowRunOptionsInternal runOptions)&lt;/docompilenewappdomain&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;and&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;08/23/2012 08:51:01.55&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;OWSTIMER.EXE (0x0CBC)&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;0x0DB8&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;SharePoint Foundation&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Workflow Infrastructure&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;98d8&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Unexpected&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Microsoft.SharePoint.SPException: Configuration system failed to initialize &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.SubCompiler.DoCompile(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.SubCompiler.DoCompile(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.&amp;lt;&amp;gt;c__DisplayClasse.&lt;docompilenewappdomain&gt;b__c() &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.DoCompileNewAppDomain(WorkflowCompilerParameters parameters, String xomlSource, String assemblyName, SPWeb web, CompilationPacket&amp;amp; packet, DirectoryInfo&amp;amp; tempDir) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeHostServices.LoadDeclarativeAssembly(SPWorkflowAssociation association) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeHostServices.CreateInstance(SPWorkflow workflow) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(SPWorkflowHostService host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut) &amp;nbsp; &amp;nbsp; at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection`1 events, SPWorkflowRunOptionsInternal runOptions)&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;3010f8ef-7f1c-4adf-abba-7abfd48a28db&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/docompilenewappdomain&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Now if the same workflow tried to use the same failing server to process the request the&amp;nbsp;length&amp;nbsp;of pause of our&amp;nbsp;original&amp;nbsp;5 minute would grow&amp;nbsp;experientially&amp;nbsp;leading to the timer&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;job&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;in some cases not even attempting to wake to workflow for days.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;After reviewing the workflow counter in perfmon for this server it became apparent that no workflow has ever run properly on the this troubled server. This lead to step one of helping resolve this problem which was turning off the &lt;i&gt;&quot;Microsoft SharePoint Foundation Workflow Timer Service&lt;/i&gt;&lt;/span&gt;&lt;i style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&quot;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;on the troubled server. This stopped new&amp;nbsp;occurrences&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;[Workflow Name]failed to run&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;in the workflow history. Happy me.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Step 2 how ever is how do we get the workflows to run on the troubled server? this still remains a&amp;nbsp;mystery. Maybe ill find the answer for a&amp;nbsp;different&amp;nbsp;post.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/8342555849211982710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/very-sleepy-sharepoint-workflow-pauses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/8342555849211982710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/8342555849211982710'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/very-sleepy-sharepoint-workflow-pauses.html' title='Very Sleepy SharePoint Workflow Pauses'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-7675286505080757942</id><published>2012-08-22T14:48:00.002+10:00</published><updated>2012-08-22T14:51:45.508+10:00</updated><title type='text'>Retrieving the COM class factory for component failed due to the following error: 80040154</title><content type='html'>&lt;span style=&quot;background-color: white; color: #222222; font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 18px;&quot;&gt;Retrieving the COM class factory for component with CLSID {XXXXXXXX-XX...} failed due to the following error: 80040154&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;This error came out of nowhere today on one of our IIS boxes.&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222; line-height: 18px;&quot;&gt;There are appears to be several ways to resolve this issue:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br style=&quot;background-color: white; color: #222222; line-height: 18px;&quot; /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;ol style=&quot;background-color: white; color: #222222; line-height: 18px;&quot;&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Modify your project&#39;s platform from &#39;Any CPU&#39; to &#39;X86&#39; in Project Properties, Build/Platform&#39;s Target in Visual Studio&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If your Application is a Web-Based Application, try setting IIS to run in 32-bit mode. You can do this by going to IIS Manager, selecting the Application Pool, then choosing &quot;Advanced Settings&quot;. The second option from the top is &quot;Enable 32-bit Applications&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If your Application is Web-Based, it could be that the com object was not configured to allow launch and access permissions for the aspnet user identity. Under administrative tools &amp;gt; Component services under the tree view, go to Component Services &amp;gt; Computers &amp;gt; My Computer &amp;gt; DCOM Config and find the registered com object. Right click for properties. Under the security tag, customize the Permissions to allow asp.net user&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Check that the app pool is running on the correct version of .net.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;The problem for us was fix number 4, some how the app pool had switch from 4.0 to 2.0 .net. The suspect was a recent patch update.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/7675286505080757942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/retrieving-com-class-factory-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/7675286505080757942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/7675286505080757942'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/retrieving-com-class-factory-for.html' title='Retrieving the COM class factory for component failed due to the following error: 80040154'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-3009586327785231669</id><published>2012-08-22T11:20:00.002+10:00</published><updated>2012-08-22T11:20:48.763+10:00</updated><title type='text'>Easy SQL split field</title><content type='html'>&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Here is an easy way to split a field into a left and right side use a&amp;nbsp;particular&amp;nbsp;splitting char (in this case a space)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SELECT &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; LEFT(TaskNo, charindex( &#39; &#39;, TaskNo) ) as TheLeftSide,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; RIGHT(TaskNo, len(TaskNo) - charindex( &#39; &#39;, TaskNo) ) as&amp;nbsp;
TheRightSide&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;FROM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sometablename&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/3009586327785231669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/easy-sql-split-field.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/3009586327785231669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/3009586327785231669'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2012/08/easy-sql-split-field.html' title='Easy SQL split field'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-1541594130774641415</id><published>2010-03-23T17:05:00.011+11:00</published><updated>2010-03-23T17:39:09.201+11:00</updated><title type='text'>LINQ and Left Outer Joins</title><content type='html'>&lt;style type=&quot;text/css&quot;&gt;
a:link {
color: #336699;
}
.post div {
margin: 0 0 .75em;
line-height: 1.3em;
}
.code {
background : #ffffff;
font-family: Courier New;
font-size: 12px;
}
.keyword
{
font-family: Courier New;
font-size: 12px;
color:#0000ff;
}
.cSharpClass
{
font-family: Courier New;
font-size: 12px;
color:#2B91AF;
}
&lt;/style&gt;&lt;br /&gt;
&lt;p&gt;Left outer joins in LINQ are not so obvious in comparison to plain old SQL. &lt;br /&gt;
The following shows how an out join can be costucted in LINQ&lt;/p&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; query = (&lt;span class=&quot;keyword&quot;&gt;from&lt;/span&gt; e &lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt; dc.GetTable&amp;lt;&lt;span class=&quot;cSharpClass&quot;&gt;Employee&lt;/span&gt;&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;keyword&quot;&gt;join&lt;/span&gt; ea &lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt; dc.GetTable&amp;lt;&lt;span class=&quot;cSharpClass&quot;&gt;EmployeeAddress&lt;/span&gt;&amp;gt;()&lt;span class=&quot;keyword&quot;&gt;on&lt;/span&gt; e.Id &lt;span class=&quot;keyword&quot;&gt;equals&lt;/span&gt; ea.EmployeeId &lt;span class=&quot;keyword&quot;&gt;into&lt;/span&gt; tempAddresses&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;keyword&quot;&gt;from&lt;/span&gt; addresses &lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt; tempAddresses.DefaultIfEmpty()&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;keyword&quot;&gt;select new&lt;/span&gt; { e.FirstName, e.LastName, addresses.State, addresses.Town});&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The SQL equivalent would be:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;select &lt;/span&gt;[t0].[FirstName], [t0].[LastName], [t1].[State] &lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;[State], [t1].[Town]&lt;span class=&quot;keyword&quot;&gt;as &lt;/span&gt;[Town]&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;keyword&quot;&gt;from&lt;/span&gt; [dbo].[Employee] &lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;&amp;nbsp; [t0&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;keyword&quot;&gt;Left outer join&lt;/span&gt;&amp;nbsp; [dbo].[EmployeeAddress]&lt;span class=&quot;keyword&quot;&gt;as&lt;/span&gt;[t1] o&lt;span class=&quot;keyword&quot;&gt;n&lt;/span&gt;[t0].[Id] = [t1].[PersonID]&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;iframe src=&quot;http://rcm.amazon.com/e/cm?t=lukesoludeveb-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=1590597893&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/1541594130774641415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/linq-and-left-outer-joins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/1541594130774641415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/1541594130774641415'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/linq-and-left-outer-joins.html' title='LINQ and Left Outer Joins'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-7218646532079291664</id><published>2010-03-18T13:54:00.000+11:00</published><updated>2010-03-18T13:54:36.524+11:00</updated><title type='text'>Get Recently Ran Query - SQL SERVER 2005</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Have you ever wanted to see what queries are running in SQL server on the fly? Yes? Well everyone’s favourite SQL server guru Pinalkumar Dave has once again provided the perfect solution with the follow simple SQL script.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;SELECT&lt;/span&gt; deqs.last_execution_time &lt;span style=&quot;color: blue;&quot;&gt;AS&lt;/span&gt; [Time], dest.TEXT &lt;span style=&quot;color: blue;&quot;&gt;AS&lt;/span&gt; [Query]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;FROM&lt;/span&gt; sys.dm_exec_query_stats &lt;span style=&quot;color: blue;&quot;&gt;AS&lt;/span&gt; deqs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;CROSS APPLY&lt;/span&gt; sys.dm_exec_sql_text(deqs.sql_handle) &lt;span style=&quot;color: blue;&quot;&gt;AS&lt;/span&gt; dest&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;ORDER BY&lt;/span&gt; deqs.last_execution_time &lt;span style=&quot;color: blue;&quot;&gt;DESC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;One thing it doesn’t seem to do is recover last run quires where the database&amp;nbsp;connection/session has finished. Now, Id like to see that as it whould have saved me from&amp;nbsp;the silly mistake of not saving my work :(. &lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/7218646532079291664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/get-recently-ran-query-sql-server-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/7218646532079291664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/7218646532079291664'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/get-recently-ran-query-sql-server-2005.html' title='Get Recently Ran Query - SQL SERVER 2005'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-5810153206649271559</id><published>2010-03-17T17:01:00.001+11:00</published><updated>2010-03-17T17:14:27.721+11:00</updated><title type='text'>Pass DataContext to Silverlight IValueConverter</title><content type='html'>&lt;span style=&quot;color: black; font-family: inherit; font-size: x-small; mso-no-proof: yes;&quot;&gt;When passing DataContext to&amp;nbsp;a Silverlight IValueConverter the following method is not supported:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; Text&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=&quot;{&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Binding&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; Detail&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&lt;br /&gt;
Mode&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=TwoWay,&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; NotifyOnValidationError&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=True,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; &lt;span style=&quot;color: red;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;ValidatesOnExceptions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=True}&quot;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;IsEnabled={&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Binding&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; ,&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Converter&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=&quot;{&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;StaticResource&lt;/span&gt; contactDetailsColorConverter&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;} &lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox&lt;/span&gt;&lt;span style=&quot;color: blue; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; font-size: x-small;&quot;&gt;Instead you need to translate the the above out to its expanded tag version&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; Text&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=&quot;{&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Binding&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; Detail&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Mode&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=TwoWay,&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; NotifyOnValidationError&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=True, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;ValidatesOnExceptions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=True}&quot;&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox.IsEnabled&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;Binding&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; Converter&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;=&quot;{&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;StaticResource&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt; contactDetailsColorConverter&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;}&quot;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox.IsEnabled&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;TextBox&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/5810153206649271559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/textbox-text-binding-detail-mode-twoway.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5810153206649271559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5810153206649271559'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/textbox-text-binding-detail-mode-twoway.html' title='Pass DataContext to Silverlight IValueConverter'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-1025237278474461027</id><published>2010-03-15T13:38:00.000+11:00</published><updated>2010-03-15T13:38:41.863+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SSRS;Excel render; Reporting Services"/><title type='text'>SSRS - Use URL to Render to Excel</title><content type='html'>So many times have I had to render a SSRS report to excel from an application? The easiest way to do this I have found is to use the URL of the report to set the output format. &lt;br /&gt;
&lt;br /&gt;
This can be done by appending &quot;&amp;amp;rs:Format=Excel&quot; to the end of the reports URL string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://servername/ReportServer?foldername/reportname&amp;amp;rs:Format=Excel&quot;&gt;http://servername/ReportServer?foldername/reportname&amp;amp;rs:Format=Excel&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If however I needed to pass a parameter to the report from a calling application I can simply add the parameter as a url parameter as well. The following example shows who to pass a parameter called &quot;eventID&quot; to the SSRS report and render the output to Excel format:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://servername/ReportServer?foldername/reportname&amp;amp;rs:Format=Excell&amp;amp;EventId=23&quot;&gt;http://servername/ReportServer?foldername/reportname&amp;amp;rs:Format=Excell&amp;amp;EventId=23&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/1025237278474461027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/ssrs-use-url-to-render-to-excel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/1025237278474461027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/1025237278474461027'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2010/03/ssrs-use-url-to-render-to-excel.html' title='SSRS - Use URL to Render to Excel'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4516345760646976347.post-5131268438515190477</id><published>2009-03-17T12:47:00.000+11:00</published><updated>2009-03-17T13:08:20.189+11:00</updated><title type='text'>SharePoint Farm Backup spbackup (codeplex)</title><content type='html'>Jesper M. Christensen has provided a simple yet affective tool for backing up a SharePoint farm, &lt;a href=&quot;http://www.codeplex.com/spbackup&quot;&gt;http://www.codeplex.com/spbackup&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This tool has been developed in PowerShell script and is quite configurable with the following options:&lt;br /&gt;catastrophicbackup: Set this value to 1 to perform a complete farm backup and 0 to skip this backuptype&lt;br /&gt;catastrophicmethod: Set this to full or differential&lt;br /&gt;sitecollectionbackup: Set this value to 1 to perform an individual backup of a site collection and subsites and 0 to skip this backuptype&lt;br /&gt;sitecollectionurl: Set this to the site collection url you want to perform an individual backup of&lt;br /&gt;hivebackup: Set this value to 1 to perform a backup of your 12-hive&lt;br /&gt;hive: Path to your 12-hive (usually located at C:\Program Files\Common Files\Microsoft Shared\web server extensions\12&lt;br /&gt;iisbackup: Set this value to 1 to perform a backup of the IIS Metadata and 0 to skip this backuptype&lt;br /&gt;iisencryptopassword: Type a password here to make the IIS6 Metadata backup restorable on other servers&lt;br /&gt;smtpserver: Type a smtp server to send mail through&lt;br /&gt;fromemail: E-mail address to send from&lt;br /&gt;backupdestination: Type a valid path for the backupfiles&lt;br /&gt;backupdestinationmaxkeepdays: If set to 0 no files are deleted. Set another number to delete files older .zip/.backup-files. Full/differential backup files are NOT deleted (from spbackup version 1.2)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wes Macdonald has provided some useful tips to extend this PwerShell script to achieve additional backups to comply closer to the Disaster and Recovery Guide from Microsoft. This includes  Alternate Access Mappings and the GAC.&lt;br /&gt;See &lt;a href=&quot;http://spbackup.codeplex.com/Thread/View.aspx?ThreadId=48260&quot;&gt;http://spbackup.codeplex.com/Thread/View.aspx?ThreadId=48260&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My implantation of combinding Jaspers spback with Wes&#39;s suggestions are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Get XML configuration file parameter&lt;br /&gt;param (   &lt;br /&gt;    [string]$Configurationfile = &quot;c:\SPBackup\SPBackup.xml&quot; &lt;br /&gt;)  &lt;br /&gt;&lt;br /&gt;function Logging {&lt;br /&gt; $logmsg = $args[0]&lt;br /&gt; Write-Host $logmsg&lt;br /&gt; $jobreport+[Environment]::NewLine+[System.DateTime]::Now&lt;br /&gt; $logmsg&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function sendemail&lt;br /&gt;{&lt;br /&gt;#  ---&lt;br /&gt;#  --- Report to e-mail if email and smtpserver is defined ---&lt;br /&gt;#  ---&lt;br /&gt; If ($fromemail)&lt;br /&gt; {&lt;br /&gt;  If ($toemail)&lt;br /&gt;  {&lt;br /&gt;   If ($smtpserver)&lt;br /&gt;   {&lt;br /&gt;    $jobreport = logging(&quot;Ending with job status &quot;&quot;&quot;+$jobstatus+&quot;&quot;&quot; for site id &quot;+$id)&lt;br /&gt;    $jobreport = logging(&quot;Sending job report on email&quot;)&lt;br /&gt;    $subject = $jobstatus +&quot;: SPBackup has completed on &quot;+$env:computername+&quot; with &quot;+[System.DateTime]::Now&lt;br /&gt;    $msg = new-object System.Net.Mail.MailMessage $fromemail, $toemail, $subject, $jobreport&lt;br /&gt;    $client = new-object System.Net.Mail.SmtpClient $smtpserver&lt;br /&gt;    $client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials&lt;br /&gt;    $client.Send($msg)&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;    $jobreport = logging(&quot;Skipping Report to e-mail because of missing smtpserver&quot;)&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;   $jobreport = logging(&quot;Skipping Report to e-mail because of missing toemail address&quot;)&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  $jobreport = logging(&quot;Skipping Report to e-mail because of missing fromemail address&quot;)&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function out-zip {&lt;br /&gt; $path = $args[0]&lt;br /&gt; $files = $input&lt;br /&gt;&lt;br /&gt; if (-not $path.EndsWith(&#39;.zip&#39;)) {$path += &#39;.zip&#39;}&lt;br /&gt;&lt;br /&gt; if (-not (test-path $path))&lt;br /&gt; {&lt;br /&gt;  set-content $path (&quot;PK&quot; + [char]5 + [char]6 + (&quot;$([char]0)&quot; * 18))&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; $zipfile = (new-object -com shell.application).NameSpace($path)&lt;br /&gt; $files  foreach {$zipfile.CopyHere($_.fullname) }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If (Test-Path $Configurationfile) {&lt;br /&gt;   $cfg = [xml] (get-content $Configurationfile)&lt;br /&gt;   $jobreport = logging(&quot;Started backup with configuration file &quot;+$Configurationfile)&lt;br /&gt;}&lt;br /&gt;Else&lt;br /&gt;{  &lt;br /&gt;   $jobstatus=&quot;Error&quot;&lt;br /&gt;   $jobreport = logging( &quot;Error: Configuration XML file not found!&quot;)&lt;br /&gt;   sendemail&lt;br /&gt;   exit&lt;br /&gt;}&lt;br /&gt;$QueryOS = Gwmi Win32_OperatingSystem -Comp localhost&lt;br /&gt;$QueryOS = $QueryOS.Caption&lt;br /&gt;&lt;br /&gt;If ($QueryOS.contains(&quot;2008&quot;) -or $QueryOS.contains(&quot;Vista&quot;))&lt;br /&gt;{&lt;br /&gt;$jobreport = logging(&quot;Windows Server 2008 or Vista detected&quot;)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If ($QueryOS.contains(&quot;2003&quot;))&lt;br /&gt;{&lt;br /&gt;$jobreport = logging(&quot;Windows Server 2003 detected&quot;)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#Go through each site-configuration in the file&lt;br /&gt;$nodelist = $cfg.selectnodes(&quot;/confSPBackup/site&quot;)&lt;br /&gt;foreach ($item in $nodelist) {&lt;br /&gt;   #Read this site parameters&lt;br /&gt;   $jobstatus=&quot;Success&quot;&lt;br /&gt;   $aambackup = $item.alternateaccessmapping&lt;br /&gt;   $id = $item.getAttribute(&quot;id&quot;)&lt;br /&gt;   $catastrophicbackup = $item.catastrophicbackup&lt;br /&gt;   $catastrophicmethod = $item.catastrophicmethod&lt;br /&gt;   $sitecollectionbackup = $item.sitecollectionbackup&lt;br /&gt;   $sitecollectionurl = $item.sitecollectionurl&lt;br /&gt;   $hivebackup = $item.hivebackup&lt;br /&gt;   $hive = $item.hive&lt;br /&gt;   $iisbackup = $item.iisbackup&lt;br /&gt;   $iisencryptopassword = $item.iisencryptopassword&lt;br /&gt;   $smtpserver = $item.smtpserver&lt;br /&gt;   $fromemail = $item.fromemail&lt;br /&gt;   $toemail = $item.toemail&lt;br /&gt;   $backupdestination = $item.backupdestination&lt;br /&gt;   $backupdestinationmaxkeepdays = $item.backupdestinationmaxkeepdays&lt;br /&gt;   $backupfilename = $sitecollectionurl.replace(&quot;http://&quot;,&quot;&quot;)&lt;br /&gt;   $backupfilename = $backupfilename.replace(&quot;/&quot;,&quot;_&quot;)&lt;br /&gt;   $guid = &quot;-&quot; + [Guid]::NewGuid().ToString()&lt;br /&gt;     &lt;br /&gt;   #Print the configuration parameter-details&lt;br /&gt;   $jobreport = logging(&quot;Starting session&quot;+$guid)&lt;br /&gt;   $item&lt;br /&gt;&lt;br /&gt;   #  ---&lt;br /&gt;   #  --- Delete old files from backupdestination if backupdestinationmaxkeepdays&lt;&gt;0 ---&lt;br /&gt;   #  ---&lt;br /&gt;   If ([string]::Compare($backupdestinationmaxkeepdays, &quot;0&quot;, $True))&lt;br /&gt;   {&lt;br /&gt;      #Perform deletion if backup destination path is valid&lt;br /&gt;      if(test-path $backupdestination) &lt;br /&gt;      {&lt;br /&gt;            &amp;amp; dir $backupdestination ? {$_.CreationTime -lt (get-date).AddDays(-$backupdestinationmaxkeepdays) -and $_.name.EndsWith(&#39;.zip&#39;)}  del -force&lt;br /&gt;            &amp;amp; dir $backupdestination ? {$_.CreationTime -lt (get-date).AddDays(-$backupdestinationmaxkeepdays) -and $_.name.EndsWith(&#39;.backup&#39;)}  del -force&lt;br /&gt;        [DateTime]::Now.ToString() +  &quot;: Files on backup destination &quot;+$backupdestination+&quot; older than &quot;+$backupdestinationmaxkeepdays+&quot; days deleted!&quot;&lt;br /&gt;      } &lt;br /&gt;      else&lt;br /&gt;      { &lt;br /&gt;         $jobstatus=&quot;Error&quot;&lt;br /&gt;         $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;   $jobreport = logging(&quot;Skipping deletion of old files on backupdestination&quot;)&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;   $gacbackup = $item.gacbackup&lt;br /&gt;            $gac = $env:windir+&quot;\assembly\gac_msil\&quot;&lt;br /&gt;&lt;br /&gt;            # ---&lt;br /&gt;            # --- Do a INETPUB backup if inetpubbackup=1 ---&lt;br /&gt;            # ---&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;            # ---&lt;br /&gt;            # --- Do a GAC backup if gacbackup=1 ---&lt;br /&gt;            # ---&lt;br /&gt;&lt;br /&gt;    #Global Assembly Cache&lt;br /&gt;            #Added element in the xml configuration file and modified the portion of the script which reads the XML to include&lt;br /&gt;           &lt;br /&gt;            $gacbackup = $item.gacbackup&lt;br /&gt;            $gac = $env:windir+&quot;\assembly\gac_msil\&quot;&lt;br /&gt;&lt;br /&gt;            If ([string]::Compare($gacbackup, &quot;0&quot;, $True))&lt;br /&gt;            {&lt;br /&gt;                        $jobreport = logging(&quot;Starting backup of GAC to &quot;+$backupdestination+&quot;\&quot;+$backupfilename+&quot;-gac&quot;+$guid+&quot;.zip&quot;)&lt;br /&gt;                        if(test-path $backupdestination)&lt;br /&gt;                        {&lt;br /&gt;                                    if(test-path $gac)&lt;br /&gt;                                    {&lt;br /&gt;                                                Write-Zip -Path $gac -IncludeEmptyDirectories -OutputPath $backupdestination\$backupfilename&quot;-gac&quot;$guid&quot;.zip&quot; &gt; $null&lt;br /&gt;                                                [DateTime]::Now.ToString() + &quot;: GAC backup Done! File name is $backupdestination\$backupfilename-gac$guid.zip&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;                                    }&lt;br /&gt;                                    else&lt;br /&gt;                                    {&lt;br /&gt;                                                $jobstatus = &quot;Error&quot;&lt;br /&gt;                                                $jobreport = logging(&quot;Error: The GAC Path doesn&#39;t exist for site id &quot;+$id)&lt;br /&gt;                                    }&lt;br /&gt;                        }&lt;br /&gt;                        else&lt;br /&gt;                        {&lt;br /&gt;                                    $jobstatus = &quot;Error&quot;&lt;br /&gt;                                    $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;                        }&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                        $jobreport = logging(&quot;Skipping backup of GAC &quot;+$gac)&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;   Start-Sleep 10&lt;br /&gt;&lt;br /&gt;   #  ---&lt;br /&gt;   #  --- Do a hive backup if hivebackup=1 ---&lt;br /&gt;   #  ---&lt;br /&gt;   If ([string]::Compare($hivebackup, &quot;0&quot;, $True))&lt;br /&gt;   {&lt;br /&gt;     $jobreport = logging(&quot;Starting backup of hive &quot;+$hive+&quot; to &quot;+$backupdestination+&quot;\&quot;+$backupfilename+&quot;-12hive&quot;+$guid+&quot;.zip&quot;)&lt;br /&gt;     if(test-path $backupdestination) &lt;br /&gt;      {&lt;br /&gt;            if(test-path $hive) &lt;br /&gt;        {&lt;br /&gt;            gi $hive  out-zip $backupdestination&quot;\&quot;$backupfilename&quot;-12hive&quot;$guid&quot;.zip&quot; $_&lt;br /&gt;            [DateTime]::Now.ToString() +  &quot;: Hive backup Done! File name is $backupdestination\$backupfilename-12hive$guid.zip&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;            } &lt;br /&gt;            else&lt;br /&gt;            { &lt;br /&gt;           $jobstatus=&quot;Error&quot;&lt;br /&gt;           $jobreport = logging(&quot;Error: The 12hive Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;            }&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;      { &lt;br /&gt;        $jobstatus=&quot;Error&quot;&lt;br /&gt;            $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;   $jobreport = logging(&quot;Skipping backup of hive &quot;+$hive)&lt;br /&gt;   }&lt;br /&gt;   Start-sleep 30&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   #  ---&lt;br /&gt;   #  --- Do a IIS Metadata backup if iisbackup=1 ---&lt;br /&gt;   #  ---&lt;br /&gt;   If ([string]::Compare($iisbackup, &quot;0&quot;, $True))&lt;br /&gt;   {&lt;br /&gt;     $jobreport = logging(&quot;Starting backup of IIS Metadata to &quot;+$backupdestination+&quot;\&quot;+$backupfilename+&quot;-IISMetadata&quot;+$guid+&quot;.zip&quot;)&lt;br /&gt;     if(test-path $backupdestination) &lt;br /&gt;      {&lt;br /&gt;       If ($QueryOS.contains(&quot;2003&quot;))&lt;br /&gt;       {&lt;br /&gt;            if(test-path $env:windir\system32\inetsrv\metaback) &lt;br /&gt;        {&lt;br /&gt;            #Check if iisuser and iispassword are entered if not run the iisback.vbs with local machine encryption&lt;br /&gt;            #With local machine encryption the IIS Metadata can only be restored on this particullar IIS instance/Server&lt;br /&gt;            If ($iisencryptopassword)&lt;br /&gt;            {&lt;br /&gt;                $jobreport = logging(&quot;The IIS Metadata is done using encryption password specified&quot;)&lt;br /&gt;                &amp;amp; cscript.exe $env:windir\system32\iisback.vbs /backup /e $iisencryptopassword /b $env:computername /overwrite&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;             $jobreport = logging(&quot;The IIS Metadata is done using machine credentials (restore on same IIS instance/server only)&quot;)&lt;br /&gt;             &amp;amp; cscript.exe $env:windir\system32\iisback.vbs /backup /b $env:computername /overwrite&lt;br /&gt;            }&lt;br /&gt;            ls $env:windir\system32\inetsrv\metaback\$env:computername.*  out-zip $backupdestination&quot;\&quot;$backupfilename&quot;-IISMetadata&quot;$guid&quot;.zip&quot; $_&lt;br /&gt;            [DateTime]::Now.ToString() +  &quot;: IIS Metadata backup Done! File name is $backupdestination\$backupfilename-IISMetadata$guid.zip&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;            } &lt;br /&gt;            else&lt;br /&gt;            { &lt;br /&gt;           $jobstatus=&quot;Error&quot;&lt;br /&gt;               $jobreport = logging(&quot;Error: The IIS Metadata Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;            }&lt;br /&gt;       }&lt;br /&gt;       If ($QueryOS.contains(&quot;2008&quot;))&lt;br /&gt;       {&lt;br /&gt;        &amp;amp; $env:windir\system32\inetsrv\appcmd.exe add backup&lt;br /&gt;        gi $env:windir\system32\inetsrv\backup  out-zip $backupdestination&quot;\&quot;$backupfilename&quot;-IISMetadata&quot;$guid&quot;.zip&quot; $_&lt;br /&gt;            [DateTime]::Now.ToString() +  &quot;: IIS Metadata backup Done! File name is $backupdestination\$backupfilename-IISMetadata$guid.zip&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;           &lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;      { &lt;br /&gt;        $jobstatus=&quot;Error&quot;&lt;br /&gt;            $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;   $jobreport = logging(&quot;Skipping backup of IIS Metadata &quot;)&lt;br /&gt;   }&lt;br /&gt;   Start-sleep 10&lt;br /&gt;&lt;br /&gt;            # ---&lt;br /&gt;           &lt;br /&gt;            # --- Do a Alternate Access Mappings backup if aambackup=1 ---&lt;br /&gt;            # ---&lt;br /&gt;            If ([string]::Compare($aambackup, &quot;0&quot;, $True))&lt;br /&gt;            {&lt;br /&gt;            $jobreport = logging(&quot;Starting backup of Alternate Access Mappings to &quot;+$backupdestination+&quot;\&quot;+$backupfilename+&quot;-aam&quot;+$guid+&quot;.xml&quot;)&lt;br /&gt;            if(test-path $backupdestination) {&lt;br /&gt;            &amp;amp; $hive\BIN\stsadm.exe -o enumalternatedomains &gt;&gt; $backupdestination&quot;\&quot;$backupfilename&quot;-aam&quot;$guid.xml&lt;br /&gt;            [DateTime]::Now.ToString() + &quot;: Alternate Access Mappings backup Done! File name is $backupdestination\$backupfilename-aam$guid.xml&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;            $jobstatus = &quot;Error&quot;&lt;br /&gt;            $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exist for site id &quot;+$id)&lt;br /&gt;            }&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;            $jobreport = logging(&quot;Skipping backup of Alernate Access Mappings.&quot;)&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;   #  ---&lt;br /&gt;   #  --- Do a site collection crawl and backup if sitecollectionbackup=1 ---&lt;br /&gt;   #  ---&lt;br /&gt;   If ([string]::Compare($sitecollectionbackup, &quot;0&quot;, $True))&lt;br /&gt;   {&lt;br /&gt;      $jobreport = logging(&quot;Starting backup of individual site &quot;+$sitecollectionurl+&quot; to &quot;+$backupdestination+&quot;\&quot;+$backupfilename+$guid+&quot;.backup&quot;)&lt;br /&gt;       &lt;br /&gt;      #Perform backup if backup destination path is valid&lt;br /&gt;      if(test-path $backupdestination) &lt;br /&gt;      {&lt;br /&gt;            &amp;amp; $hive\BIN\stsadm.exe -o backup -url $sitecollectionurl -filename $backupdestination&quot;\&quot;$backupfilename$guid.backup -overwrite &gt; $null&lt;br /&gt;        [DateTime]::Now.ToString() +  &quot;: Site backup Done! File name is $backupdestination\$backupfilename$guid.backup&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;      } &lt;br /&gt;      else&lt;br /&gt;      { &lt;br /&gt;         $jobstatus=&quot;Error&quot;&lt;br /&gt;         $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;   $jobreport = logging(&quot;Skipping backup of individual site &quot;+$sitecollectionurl)&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   Start-Sleep 10&lt;br /&gt;           &lt;br /&gt;   #  ---&lt;br /&gt;   #  --- Do a farm backup if catastrophicbackup=1 ---&lt;br /&gt;   #  ---&lt;br /&gt;   If ([string]::Compare($catastrophicbackup, &quot;0&quot;, $True))&lt;br /&gt;   {&lt;br /&gt;      $jobreport = logging(&quot;Starting catastrophic backup of farm to &quot;+$backupdestination+&quot;\&quot;)&lt;br /&gt;       &lt;br /&gt;      #Perform backup if backup destination path is valid&lt;br /&gt;      if(test-path $backupdestination) &lt;br /&gt;      {&lt;br /&gt;            &amp;amp; $hive\BIN\stsadm.exe -o backup -directory $backupdestination&quot;\&quot; -backupmethod $catastrophicmethod -overwrite &gt; $null&lt;br /&gt;        [DateTime]::Now.ToString() +  &quot;: Farm backup Done! Destination is $backupdestination\&quot; &gt;&gt; &quot;$backupdestination\log.txt&quot;&lt;br /&gt;      } &lt;br /&gt;      else&lt;br /&gt;      { &lt;br /&gt;         $jobstatus=&quot;Error&quot;&lt;br /&gt;         $jobreport = logging(&quot;Error: The backupdestination Path doesn&#39;t exists for site id &quot;+$id)&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;   $jobreport = logging(&quot;Skipping catastrophic backup of farm with xml site id &quot;+$id)&lt;br /&gt;   }&lt;br /&gt;sendemail&lt;br /&gt;$jobreport=&quot;&quot;&lt;br /&gt;}&lt;br /&gt;Write-host([Environment]::NewLine+[Environment]::NewLine+&quot;SPBackup has ended, waiting 40 seconds for jobs to complete...&quot;)&lt;br /&gt;Start-Sleep 40</content><link rel='replies' type='application/atom+xml' href='http://lfarbotko.blogspot.com/feeds/5131268438515190477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lfarbotko.blogspot.com/2009/03/sharepoint-farm-backup-spbackup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5131268438515190477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4516345760646976347/posts/default/5131268438515190477'/><link rel='alternate' type='text/html' href='http://lfarbotko.blogspot.com/2009/03/sharepoint-farm-backup-spbackup.html' title='SharePoint Farm Backup spbackup (codeplex)'/><author><name>lfarbotko</name><uri>http://www.blogger.com/profile/15634338321838598113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSW_vN9Y9a3QwpUIDWdw535wCLzC9rWyTZ7erwz_cwi7v3inXetpRshzHLdxSL260qY1P4YDF2IjmIf-ZKdDCOAPQmDPx3vnkwaphPUIwB4dif8yCHjOxxKUVbkhLkvc/s220/IMG_8460.JPG'/></author><thr:total>0</thr:total></entry></feed>