<?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: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-8532078613556244503</id><updated>2011-11-28T01:51:43.013+01:00</updated><category term='logging'/><category term='Expiration'/><category term='Error 401'/><category term='promote'/><category term='Dispose'/><category term='allowInsecureTransport'/><category term='variations'/><category term='calculated column'/><category term='field'/><category term='log'/><category term='property'/><category term='SharePoint'/><category term='column'/><category term='SharePoint 2010'/><category term='version number'/><category term='workflows'/><category term='eventhandler'/><category term='InfoPath'/><title type='text'>Simonsens blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-7219132532534483114</id><published>2010-01-05T16:26:00.002+01:00</published><updated>2010-01-05T16:50:51.788+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='calculated column'/><category scheme='http://www.blogger.com/atom/ns#' term='variations'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint calculated columns and variations?</title><content type='html'>I had a very spooky issue today that took me a good deal of time to resolve. &lt;br /&gt;&lt;br /&gt;On a list in an English variation I have a calculated column called &lt;a href="http://www.thismuchiknow.co.uk/?p=36"&gt;CalculatedExpiry&lt;/a&gt; with a formula that looks like this:&lt;br /&gt;=IF(Expires="",DATE(2099,1,1),Expires)&lt;br /&gt;&amp;nbsp; and that works just fine, if the Expires field is empty, it set it to 1. January 2099&lt;br /&gt;&lt;br /&gt;I then created the same calculated column on a Danish variation of the site, but when I wanted to save it I got the "The formula contains a syntax error or is not supported." &lt;br /&gt;Even though they where&amp;nbsp;identical...&lt;br /&gt;&lt;br /&gt;After&amp;nbsp;a lot of testing and googling I came accross &lt;a href="http://social.technet.microsoft.com/forums/en-US/sharepointadmin/thread/5f7af490-f695-49d8-9ff7-7e7a2062ab71"&gt;this&lt;/a&gt; post, which suggested to replace the commas (,) in the formula with semicolons (;) and what do you know, it works!&lt;br /&gt;&lt;br /&gt;So in the Danish variation the calculated columns formula now looks like this:&lt;br /&gt;=IF(Expires="";DATE(2099;1;1);Expires)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-7219132532534483114?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/7219132532534483114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2010/01/sharepoint-calculated-columns-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/7219132532534483114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/7219132532534483114'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2010/01/sharepoint-calculated-columns-and.html' title='SharePoint calculated columns and variations?'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-6104897890821509143</id><published>2009-12-20T12:54:00.000+01:00</published><updated>2009-12-20T12:54:17.135+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='allowInsecureTransport'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>Installing SharePoint 2010 on Windows Vista x64 SP1</title><content type='html'>I'm installing SharePoint 2010 on a Windows Vista x64 SP1 and is getting the 'allowInsecureTransport' error on the create sample data pass of the configuration wizard. Unfortunately the &lt;a href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=23806&amp;amp;wa=wsignin1.0"&gt;fix&lt;/a&gt; won't install and I'm getting the 'The update does not apply to your system'. Maybe there's missing an fix for Vista x64?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However I managed to complete the wizard by removing the two allowInsecureTransport="true" sentences (remember not to remove the closing tag :)) from the client.config found at "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebClients\Profile" thanks to a tip from &lt;a href="http://www.mcpblog.net/Lists/Posts/Post.aspx?List=8f2497f6%2De77b%2D4e70%2D8400%2De020b292165c&amp;amp;ID=61"&gt;http://www.mcpblog.net/Lists/Posts/Post.aspx?List=8f2497f6%2De77b%2D4e70%2D8400%2De020b292165c&amp;amp;ID=61&lt;/a&gt;. Note that you don't have to uninstall SharePoint, only remove the two lines. &lt;br /&gt;&lt;br /&gt;Jesper Simonsen&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-6104897890821509143?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/6104897890821509143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/12/installing-sharepoint-2010-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6104897890821509143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6104897890821509143'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/12/installing-sharepoint-2010-on-windows.html' title='Installing SharePoint 2010 on Windows Vista x64 SP1'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-103101765786149881</id><published>2009-03-11T12:28:00.006+01:00</published><updated>2009-03-11T13:55:34.353+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Expiration'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Creating a document expiration view</title><content type='html'>It's a scenario we all know; documentation has to be kept updated, test reports has to be fresh and valid and so on. So how do you ensure that? &lt;div&gt;&lt;br /&gt;&lt;div&gt;Here's a little hint on creating a view that will display items or document that hasn't been updated for a specific period of time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_lOHsaAr76-Y/Sbej8bsvCwI/AAAAAAAAABo/RIzVHebaKtI/s1600-h/Capture.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5311894544129657602" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 156px" alt="" src="http://2.bp.blogspot.com/_lOHsaAr76-Y/Sbej8bsvCwI/AAAAAAAAABo/RIzVHebaKtI/s320/Capture.JPG" border="0" /&gt;&lt;/a&gt; Create a new view of your list or document library.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Give it a descriptive name and select the fields you want to display&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you got files in folders, select to 'Show all item without folders' under Folders, Folders or Flat&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Under Filter select the options that form the criteria for the documents or items you want to look at. In the question about the date, you could use the built in Modified column or use one of your own custom columns, like I do below.&lt;/div&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5311908775145767586" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 265px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_lOHsaAr76-Y/Sbew4yXYAqI/AAAAAAAAABw/ViER6HHV3O0/s320/Capture.JPG" border="0" /&gt;&lt;/div&gt;&lt;div&gt;The trick is to use the built-in [Today] feature and the subtract to number of days you want to test for. So, in this case, I looking for documents that has the SKU Test Result set to 'Pass', but has a SKU Test Date that is more than 330 days old. Remember, no spaces in [Today]-330.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The resulting view shows all the documents that needs to be re-tested soon and the responsible person can take the needed actions.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-103101765786149881?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/103101765786149881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/03/creating-document-expiration-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/103101765786149881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/103101765786149881'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/03/creating-document-expiration-view.html' title='Creating a document expiration view'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lOHsaAr76-Y/Sbej8bsvCwI/AAAAAAAAABo/RIzVHebaKtI/s72-c/Capture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-6108577182644990021</id><published>2009-03-09T12:06:00.005+01:00</published><updated>2009-03-09T12:48:27.366+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispose'/><title type='text'>To Dispose or not to Dispose - that's the question</title><content type='html'>It's a good coding practice to tidy up after yourself to not waste system resources and there's good resources out there to help you learn the techniques. One of my favorites is &lt;a href="http://code.msdn.microsoft.com/SPDisposeCheck"&gt;http://code.msdn.microsoft.com/SPDisposeCheck&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_lOHsaAr76-Y/SbT7IFq80MI/AAAAAAAAABg/xGT-HRKeGu4/s1600-h/Capture.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5311145976956506306" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 76px" alt="" src="http://3.bp.blogspot.com/_lOHsaAr76-Y/SbT7IFq80MI/AAAAAAAAABg/xGT-HRKeGu4/s320/Capture.JPG" border="0" /&gt;&lt;/a&gt;But recently I had a workflow that started dying on me and throwing up in the eventviewer with a&lt;br /&gt;.NET Runtime version 2.0.50727.3068 - Fatal Execution Engine Error. The error assumed problems with the dotnet framework, but repairing the framework and applying hot fixes didn't solve the issue. And the strange thing was that it was only when adding new item it happened, where as the workflow ran perfectly when updating items. The major difference was that the item adding was triggered from an eventhandler and therefore ran under the System account, but item updating occurred when a user changed the document. I also discovered that part of the workflow ran, before it died, so I put in excessive logging and ended up at a SPWeb.Dispose line. Once I commented out these lines the error disappeared.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;// Disposing here will cause workflow to fail&lt;br /&gt;// web.Dispose();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I'm not a 100% sure this is the right answer, but running in System account seems to prohibit the use of Dispose. Anyway, I left these SPWeb objects to be taking care of by the garbage collector, maybe it was afraid of being unemployed...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-6108577182644990021?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/6108577182644990021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/03/to-dispose-or-not-to-dispose-thats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6108577182644990021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6108577182644990021'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/03/to-dispose-or-not-to-dispose-thats.html' title='To Dispose or not to Dispose - that&apos;s the question'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lOHsaAr76-Y/SbT7IFq80MI/AAAAAAAAABg/xGT-HRKeGu4/s72-c/Capture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-8712058795721902626</id><published>2009-02-20T07:39:00.005+01:00</published><updated>2009-02-20T08:51:06.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Error 401'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><title type='text'>Cascading dropdown lists and error 401</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_lOHsaAr76-Y/SZ5gwIYp4GI/AAAAAAAAABI/8qTw1k83Zac/s1600-h/Error+401.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5304783791089901666" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 264px" alt="" src="http://2.bp.blogspot.com/_lOHsaAr76-Y/SZ5gwIYp4GI/AAAAAAAAABI/8qTw1k83Zac/s320/Error+401.JPG" border="0" /&gt;&lt;/a&gt;Until recently we successfully used the tip from &lt;a href="http://www.sharepoint-tips.com/2007/01/infopath-form-services-implementing.html"&gt;Ishai Sagi&lt;/a&gt; on cascading lists, but suddenly our users reported getting a error when trying to use the drill down Master-Detail dropdown lists.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Looking at the IIS log we discovered the call to owssrv.dll was done anonymous and resulted in an error 401. With good help from a consultant from &lt;a href="http://www.key2know.dk/"&gt;Key2Know&lt;/a&gt; we found that the issue was related to a loopback check security update on Windows Server 2003 SP1. The solution was found on &lt;a href="http://support.microsoft.com/kb/896861"&gt;http://support.microsoft.com/kb/896861&lt;/a&gt; where you can read more about this issue. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;We implemented solution 1 on our Web Front Ends and this resolved the issue.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-8712058795721902626?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/8712058795721902626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/cascading-dropdown-lists-and-error-401.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/8712058795721902626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/8712058795721902626'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/cascading-dropdown-lists-and-error-401.html' title='Cascading dropdown lists and error 401'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lOHsaAr76-Y/SZ5gwIYp4GI/AAAAAAAAABI/8qTw1k83Zac/s72-c/Error+401.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-6663501999456980577</id><published>2009-02-11T23:15:00.004+01:00</published><updated>2009-02-12T00:45:39.473+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workflows'/><category scheme='http://www.blogger.com/atom/ns#' term='log'/><category scheme='http://www.blogger.com/atom/ns#' term='eventhandler'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><title type='text'>Creating logging for workflows and eventhandlers</title><content type='html'>When dealing with workflows you often have the abillity to do debugging in your DEV environment, but when it comes to eventhandlers things get a litle more grumsy. And fully testing every possible scenario and user inputs is impossible so one day your code is gonna break and if you haven't made a log, you don't know why...&lt;br /&gt;&lt;br /&gt;I use the same logging feature and logging place for all of our workflows and our one and only &lt;strong&gt;&lt;span style="font-size:85%;"&gt;Construction Kit Eventhandler&lt;/span&gt;&lt;/strong&gt; (more on that another day). It's fairly simple, but functionally enough to keep me going.&lt;br /&gt;&lt;br /&gt;So in the terms of C#:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make two global variables&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;public int i = 0;&lt;br /&gt;StringBuilder MyStringBuilder = new StringBuilder();&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create two functions&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;public void AddToLog(string msg)&lt;br /&gt;{&lt;br /&gt;MyStringBuilder.AppendLine(DateTime.Now.ToLongTimeString() + ":" + i.ToString() + "=" + msg);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void WriteLog()&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;AddToLog("Log ended at i = " + i.ToString());&lt;br /&gt;SPList SetupList = web2.Lists["Logs"]; //use global SPWeb here or hardcode&lt;br /&gt;SPListItem myItem = SetupList.Items.Add();&lt;br /&gt;myItem["Title"] = myContentType;&lt;br /&gt;myItem["Log"] = MyStringBuilder;&lt;br /&gt;myItem.Update();&lt;br /&gt;SetupList.Update();&lt;br /&gt;}&lt;br /&gt;catch (Exception Ex)&lt;br /&gt;{&lt;br /&gt;//Even logging can fail so you may want to take some action here&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In your code place a code counter and code logging like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;AddToLog("ReadSettings started...");&lt;br /&gt;i = 1;&lt;br /&gt;myUrl = workflowProperties.WebUrl.ToString();&lt;br /&gt;i++;&lt;br /&gt;AddToLog(" Url: " + myUrl);&lt;br /&gt;i++;&lt;br /&gt;Etc...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The code counter 'i' gives you the option of pin pointing exactly at which line of code the error occurred.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;At the end of your code execution and at your global error handling code ensure to get the log written:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;WriteLog();&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Logs list should contain two columns, 'Title' as Single line of text and 'Log' as Multiple lines of text (plain text).&lt;/p&gt;&lt;p&gt;Now you can hardcode your logging destination into the WriteLog function or you can setup a global SPWeb object (remember to dispose it at the end of the code execution) like I do. My code look something like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;string myUrl = workflowProperties.WebUrl.ToString();&lt;br /&gt;i++;&lt;br /&gt;int startcmd = myUrl.IndexOf("//");&lt;br /&gt;i++;&lt;br /&gt;int startval = myUrl.IndexOf("/", startcmd + 2);&lt;br /&gt;if (startval == -1) startval = myUrl.Length;&lt;br /&gt;i++;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;SPSite objSite = new SPSite(myUrl.Substring(0, startval).ToLower().Replace("corporate", "collaboration") + "/SubFolder/Settings");&lt;br /&gt;i++;&lt;br /&gt;web2 = objSite.OpenWeb();&lt;br /&gt;i++;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The .Replace("corporate", "collaboration") trick is about having two different webs served by the same code, but only having one place to host the logging, e.g. at &lt;a href="http://collaboration/SubFolder/Settings/Logs"&gt;http://collaboration/SubFolder/Settings/Logs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Obviously our logging code also deals with log archiving, success or failiure logging as well as notification of sys admins, but for the sake of simplicity this is the starting point.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-6663501999456980577?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/6663501999456980577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/creating-logging-for-workflows-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6663501999456980577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/6663501999456980577'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/creating-logging-for-workflows-and.html' title='Creating logging for workflows and eventhandlers'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-5674038907619370844</id><published>2009-02-11T22:50:00.006+01:00</published><updated>2009-02-18T13:45:30.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='version number'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><title type='text'>Display the version number on your InfoPath form</title><content type='html'>Tired of not really knowing if the InfoPath form you're looking at is the latest version?&lt;br /&gt;&lt;br /&gt;Here's a simple trick to display the info.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On your form find a suitable place to add a textbox (I place mine at the bottom, right corner)&lt;/li&gt;&lt;li&gt;In the new textbox property, click the Fx button and insert the following in the formula box:&lt;br /&gt;&lt;strong&gt;concat(substring-before(substring-after(processing-instruction()[local-name(.) = "mso-infoPathSolution"]; 'href="'); '"'); " template with form version "; substring-before(substring-after(processing-instruction()[local-name(.) = "mso-infoPathSolution"]; 'solutionVersion="'); '"'))&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Now you can format the textbox with text color, size (use 'auto' as width) and position.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I found parts of this somewhere on the net, so don't blame me if it works :-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-5674038907619370844?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/5674038907619370844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/display-version-number-on-your-infopath.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/5674038907619370844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/5674038907619370844'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/display-version-number-on-your-infopath.html' title='Display the version number on your InfoPath form'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-5195715909844323192</id><published>2009-02-11T17:49:00.004+01:00</published><updated>2009-02-11T18:20:01.005+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='property'/><category scheme='http://www.blogger.com/atom/ns#' term='promote'/><category scheme='http://www.blogger.com/atom/ns#' term='column'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='field'/><title type='text'>InfoPath properties and SharePoint columns</title><content type='html'>I just hate it when there's no logic explanation!&lt;br /&gt;&lt;br /&gt;Had an InfoPath form, published to SharePoint, needed to add some new fields, created the matching Site Columns, promoted the fields to the new columns, republished - everything looked good on our TEST server and then I did the same thing in our PROD environment: NoGo.&lt;br /&gt;&lt;br /&gt;Yes, the form was published ok. The resulting xml documents had the changes, but the SharePoint Site Columns didn't reflect the changes. I searched logs, checked for misspells, googled for a day - nothing! It all looked correct, but it didn't work. (Actually not quite correct cause the columns where now properties of the ListItem and therefore didn't belong to the document).&lt;br /&gt;&lt;br /&gt;Finally I found a fellow blogger that in turn had found some other bloggers and to make it short, here's the link: &lt;a href="http://arichterwork.blogspot.com/2008/03/infopath-property-promotion-woes.html"&gt;http://arichterwork.blogspot.com/2008/03/infopath-property-promotion-woes.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All credit goes to these guys, but let me just sumerize the workaround (it's not a solution, nor an explanation):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Using Central Admin, Applications, InfoPath, you need to deactivate the faulting form from all of the Site Collections it has been activated on.&lt;/li&gt;&lt;li&gt;While deactivated, upload a new version of the form.&lt;/li&gt;&lt;li&gt;Reactivate the form to the Site Collections where it is needed.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This made my InfoPath fields or properties work and I got the reflecting values on my SharePoint columns. &lt;/p&gt;&lt;p&gt;It looks like this bug occurs when you have republished your InfoPath form several time, but I really hope it will be fixed soon.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-5195715909844323192?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/5195715909844323192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/infopath-properties-and-sharepoint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/5195715909844323192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/5195715909844323192'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/02/infopath-properties-and-sharepoint.html' title='InfoPath properties and SharePoint columns'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8532078613556244503.post-3917527186056281823</id><published>2009-01-18T18:44:00.001+01:00</published><updated>2009-01-18T22:14:05.976+01:00</updated><title type='text'>Welcome to my blog!</title><content type='html'>Hallo world and welcome to my first shot ever on a public, online blog!&lt;br /&gt;&lt;br /&gt;I start by giving a short introduction to myself. I'm male and married, live in Denmark, work as a IT guy @ LEGO. I've worked a lot with automated deployment, SMS, WinPE and stuff like that, but recently I switched to being a web developer. So now, it's SharePoint, workflows, eventhandler and C#. I regulary attend conferences like TechEd, where I walk around and &lt;a href="http://www.microsoft.com/technet/scriptcenter/topics/teched07/itwednesday.mspx"&gt;handout&lt;/a&gt; small LEGO gifts.&lt;br /&gt;&lt;br /&gt;My wife is a landscaper and recently we got a visit from a lady from the Danish Garden society. They would like to invite their members to come for a tour in our (read: my wife's) garden for inspiration. So if you're in the neigbourhood around mid summer...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8532078613556244503-3917527186056281823?l=jesper-simonsen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesper-simonsen.blogspot.com/feeds/3917527186056281823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/01/welcome-to-my-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/3917527186056281823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8532078613556244503/posts/default/3917527186056281823'/><link rel='alternate' type='text/html' href='http://jesper-simonsen.blogspot.com/2009/01/welcome-to-my-blog.html' title='Welcome to my blog!'/><author><name>Jesper G. Simonsen</name><uri>http://www.blogger.com/profile/10736423718268509103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_lOHsaAr76-Y/SZP3ufEp5MI/AAAAAAAAAAk/Py3kBPvTtzg/S220/Jesper+Simonsen+closeup.jpg'/></author><thr:total>0</thr:total></entry></feed>
